The pseudo random number generation on a PICAXE is entirely predictable, based on shifting left and then setting the lsb, or not. The sequence will cycle through all possible 65,536 values, but using byte not word variables reduces the cycle to just a handful, so make sure you use a word variable to hold the random number.

Manipulating a word variable to produce a range of numbers, in this case likely to be -<code><pre><font size=2 face='Courier'> Random randomNumber

randomValueChosen = randomNumber // 5 ' Result is 0 to 4 </font></pre></code> can give a skewed outcome.

There are two simple options; keep track of the last random number chosen, and repeat getting a new random number until it is different ( which could also result in a repeating / alternating sequence ) or try other manipulations on the number such as -<code><pre><font size=2 face='Courier'> Random randomNumber

randomValueChosen = randomNumber / K // 5 ' Result is 0 to 4 </font></pre></code> where 'K' is some number which will have to be found by experimenting. You can always use both techniques.

Beyond that, it's a case of writing your own random number generator. If you have a loop whose length depends on how long a user delays, such as pushing a button, you can try -<code><pre><font size=2 face='Courier'> Do

randomNumberChosen = randomNumberChosen+1 // 5

Loop Until pin0 <> 0

Gosub UseTheRandomNumber </font></pre></code>