I used to write games in Basic so I know this a bit.
The RND function was based on a certain CPU seed, that is true. There was a RANDOMIZE (number) command to control where the seed would start. If you would for instance write a program like this:
10 RANDOMIZE 1277
20 FOR F = 1 TO 10
30 PRINT RND
40 NEXT F
no matter how often you ran this, you would always get the same sequence of numbers.
The function is not truly random, the RND has some rhythm in it.
However, since most game programs are constantly looping, and are very much based on player reactions, there is a way to scramble this a bit. Just let the program select a random number for every loop while the player is for instance, idle. Making it simple, the above program could be like this:
10 RANDOMIZE 1277
20 FOR F = 1 TO 10
25 LET X = RND. IF INKEY$ <> " " THEN GO TO 25
30 PRINT RND
40 NEXT F
This leaves the initiative by the user, he will have to press the space bar to get his random number, and will due to the computer's speed in relation to human reflection, never get the same row of numbers.....
Quite interesting.