How to generate a random number between 1 and 10 with a six-sided die? Just for fun, I am trying to find a good method to generate a random number between 1 and 10 (uniformly) with an unbiased six-sided die.
I found a way, but it may requires a lot of steps before getting the number, so I was wondering if there are more efficient methods.
My method:


*

*Throw the die and call the result $n$. If $1\leq n\leq 3$ your number will be between $1$ and $5$ and if $4\leq n\leq 6$ your number will be between $6$ and $10$. Hence, we reduced to the problem of generating a random number between $1$ and $5$.

*Now, to get a number between $1$ and $5$, throw the die five times. If the $i$th throw got the largest result, take your number to be $i$. If there is no largest result, start again until there is.


The problem is that although the probability that there will eventually be a largest result is $1$, it might take a while before getting it.
Is there a more efficient way that requires only some fixed number of steps? Edit: Or if not possible, a method with a smaller expected number of rolls?

*

*Roll the die to decide high/low. If you get 1-3 do step (2) for 1,2,3,4,5.  If you get 4-6, do step (2) for 6,7,8,9,10

*Roll the die to choose a number. 1,2,3,4,5 correspond to 1,2,3,4,5 if low and to 6,7,8,9,10 if high. If you roll a 6, redo (2)
