Once you learn the language concentrate on optimising your code because its more how you write than what you write that matters. Your using the randomise command to stop it generating the same sequence every time, good. But theres a better way than what your doing, whats a return variable thats never the same or highly unlikely to be the same without the user doing anything? (in this case moving the mouse)
Timer() is the best so try randomise timer()
Another line that can be optimised is...
Rem If the player puts in thing other then a number from 1-10, tell the user of his error
If y=0 then print "A value of 0 cannot be accepted as an answer" : print "Make sure you entered a number 1-10. Press any key to continue" : suspend for key : goto restart
change to
If y<1 or y>10 then print "A value of "+str$(y)+" cannot be accepted as an answer" : print "Make sure you entered a number 1-10. Press any key to continue" : suspend for key : goto restart
So it picks up anything less than 1 or more than 10 as being an error, rather than just 0. If you were writing a larger more complex program - depending on how it works - you could optimise it furthur, for example if you had a program execute that same 'if then' statement several times but sometimes needed different numbers, instead of writing the same code 100 times you could do something like...
min=1:max=10:gosub CheckValue
CheckValue:
If y<min or y>max then print "A value of "+str$(y)+" cannot be accepted as an answer" : print "Make sure you entered a number "+str$(min)+"-"+str$(max)+". Press any key to continue" : suspend for key : goto restart
return
or turn it into a function which - depending on how the program is designed - can be even better
if CheckValue(1,10,answer)=0 then print "A value of "+str$(answer)+" cannot be accepted as an answer" : print "Make sure you entered a number 1-10. Press any key to continue" : suspend for key : goto restart
Function CheckValue(min,max,answer)
if answer<min or answer>max then result=0 else result=1
EndFunction result
If you dont know about functions yet ignore that 2nd part, their best used in more complex programs with routines that need to be called several times with differing values