RND() function for random numbers appears to give the same results each time the computer is reset. How do I seed the random number generator with a random number?
From here it looks like the official way is to use RND(N) to seed, where is N is a negative number.
But according to this you can also just copy a byte from a timer to the RND seed with:
If your program shows a title screen with a loop checking for a user keypress, you could:
Do X=RND(0) in the loop. This will put you at a random place in the sequence.
Set N to -1 then decrement it in the loop (maybe wrap somewhere to -1 to avoid overflow). Then X=RND(N) to seed. (You could put that in the loop but it would slightly reduce the range of N.)
Use a value derived from a CMOS clock for your seed, since those are never the same twice.
On an older computer with no CMOS clock, there will still be a clock that starts from zero every time the computer is started. You can use this clock as well, as long as the program start time relies on human action which will introduce a random delay. Manually starting the program should introduce enough error for a reliably unique seed. If you autostart the program with a zeroed-out clock on reboot, and without requiring any human input, then you are very likely to get repeating values for your seed.