What about reading from a list of "random" numbers? this is the old fashion way of doing it . . .
You can also poll from the timer, analog port . . .
Or say multiply a number from the 'random list' by the timer, then divide by the analog port value, etc. to get a pseudo-random number.
If its on a robot that only needs a random number with response to an external event (button pushed, sensor detects something, etc), then using the timer value would be best.