What Makes A Computer Choosing Random Numbers, Start At 3, Or 5, Or 3027846?
A computer starts somewhere. It starts with a bios and a CPU and a motherboard ect… When we code that computer to pump out a random number, what makes it pick the number it picks? Exactly the same computer sits beside it’s identical and they both pick different 1st random numbers. Is the Bios fed a seed during construction and every new bios gets a different seed? Those of us that have worked with random numbers know what a seed is. So why does my computer give a number between 100 and 1000 as 756, but yours gives, 537? Is that not a form of intelligence beyond that of artificial? We gave the computer the ability to give random numbers, but what makes it give or pick that random number when in reality it has no ‘will’ to decide. Why 3 and not 4, when it favours nothing? Even with a seed, what makes it choose 5 with this seed but 7 with that seed? Where in the ruels of life does it say that, with this seed equaling 756395837 in that computer, 1st random # will be this?
Related posts:

Some computer languages and some math packages have an option for selecting a seed by using a number of variable values that can be read from the hardware. For example, the current time, date, and local Ethernet MAC address can be used to create the seed. If you repeat the operation later, the seed would be different because of the time difference. If you ran the same generator at exactly the same time on two such computers, the seeds would be different because of the different MAC addresses.
If you need a truly random sequence of numbers then you can use a hardware interface to a random physical event. Some devices that have been used measure the time between detections of cosmic rays or the random decay of a radioactive sample. Another is based on the random noise created by a diode junction.
One quirk I know about QuickBasic (if you happen to be using it), and possibly for some other programming languages, is that for repeatable output during the second and subsequent executions within a running program, the seed for the RND function must be a negative number supplied as an argument (e.g., x=RND(-5)); repetitions of the RANDOMIZE N statement do not produce repeatable results from RND.
There is one other possibility; that a built-in program uses a physical random noise source and derives numbers from that. But I don’t know of any PCs that do that, and anyway such a device wouldn’t ask for a seed.
Where truly random numbers are needed, usually some form of electronic device is used e.g. based on the noise from a diode or a noise cell and this is then used electronically to decide the value.
Truly random numbers without patterns are difficult to actually generate in a limited state machine without an external device.