Random numbers and pseudo-random number are a thorny issue in computer science.
The computer generated numbers discussed in the cassino story were pseudo-random numbers. Pseudo-random numbers are a sequence of numbers that have many of the statistical properties of true random numbers. For many everyday uses, such as video games, pseudo random numbers are quite good enough to give the impression of truly random behaviour.
There are many ways of generating pseudo-random number sequences with varying degrees of sophistication. However, what all these methods have in common is that no matter how complex the generator function may be, it is, ultimatly, absolutly predictable.
There are some real-world instances of this causing a problem. For example: on some types of network, any of a number of computers may start to transmit a message on a common medium such as a coaxial cable. Of course, it can happen that two computers start to transmit simultaneously, in which case each will garble the message of the other. The solution to this problem is that when a computer is transmitting its message it also listens, if what is heard does not match what is being transmitted then the computer assumes that its transmission has collided with the transmission of another computer. Under these circumstances, each computer stops transmitting, waits for a random period and then listens again, if the line is free it resumes transmission. With a random wait, one of the comuters will start before the other with a high probablity.
Obviously, there is a potential problem with this protocol. Messages from two computers that are using identical sequences of pseudo-random numbers to will go on colliding indefintly.
This sort of problem can be solved in a number of ways:
Pseudo-random number generators may be seeded with a unique number (e.g. the machines serial number or date of manufacture) so that each machine will start at a different point in a pseudo-random sequence.
Pseudo-random number generators may be combined with other pseudo-random sources such as the current date and time or the speed with which the computer executes its programs. These are things that can be impossibly difficult to predict in advance, especially in a complex system where a different combination of programmes may be running. However, none of these solutions is truely random.
Further, pseudo-random number sequences may be combined with (or entirly replaced by) a source of true randomness. Almost any mechanical element of a system will show some random variation - e.g. the time in microseconds between presses of a push-button or the turbulence affecting a disk drive head. However, it is hard to be sure that these sources are random and suitable hardware may not be available anyway.
Finally, there are sources of true random numbers from bespoke hardware, these include radioactive decay and noisy diodes.