I think that the best and simpler...
For any micro running fast (4 MHz should be -is - more than enough) and a user pressing two or more buttons, an 8-bit counter running continuously in the background should give random numbers. Yes, they are just 256 possible ones (not a random thing) but which one, that's random.
I used that idea in a design for training in martial arts where the trainee had to kick random lighted pads with the next always lit at random based on when he did the previous kick.
Not a big deal in code size or RAM involved. Sure nobody, even Bruce Lee, could predict which one would be next!