This answer has an important error. If you want to produce a real number in the interval [x,y[, in general you use:
(randf() * (y-x)) + x.
From 1 to 10, you have randf() * 9 + 1
. This is because randf()
can be 1 as maximum. In this case, you would obtain 9 + 1 = 10. In the case proposed by this answer, randf() * 11 + 1
, if by chance randf()
turns out to be greater than 0.8 you get something greater than 10. So, there is a 20% chance of having a wrong answer.