I've been working on a post for a little while now, but getting stuck in some of the calculations, so I've been delayed. However, I just received a question from my brother, Nate, that I thought I could answer a little more easily.
I was listening to a podcast yesterday that sidetracked into a discussion of what you'd need to make a fully-sentient AI system, and got to thinking about randomness.The answers to these questions requires a little clarification of what exactly "random" is. I'm going to assume that "random" means that given any amount of information you wish, the result is still not predictable with a reasonable amount of certainty. In this case, anything macroscopic, like a coin-flip or hardware measurement, is not random because they follow the classical laws of motion. Given the initial conditions, these laws will predict the results. However, it should be noted that these initial conditions can often be exceedingly complex, and difficult to determine, hence the notion of pseudo-randomness.
Most "random number generators" on computers are actually pseudo-random-number algorithms. They're deterministic, but the results are surprising and random-looking. Like f(x)=10, f(x+1)=284, f(x+2)=-5926, f(x+3)=9
But cryptographic applications demand true randomness, and so lots of work has gone into designing entropy-gathering systems for your computer. Now your machine can watch all kinds of things like the last key you typed, or the axil-tilt of your laptop's motion sensors, or the last seek-time of your hard drive. It collects this randomness, and can give a "real" random number when you need one.
So my question for Fundamental Forces is
* Are the numbers we get from these entropy sources /really/ theoretically random? If you had infinite physicists and computers, could you predict a coin-flip?
* If that's not theoretically random, how might we get there?
* Does true randomness exist? If yes, how can we know that it's Truly Random and not just really complex-looking?
True randomness, though, is possible through quantum mechanics. In quantum mechanical systems, particles occupy various "states," which specify properties like position and velocity. However, a given particle can be in a superposition of states, where each is assigned a probability. Note that this is not the same as saying the particle is in one of the states and we simply don't know which; the distinction was famously proven by Bell's theorem. By setting up an experiment which depends on the particle being in one of the particular states for a particular result, we can get truly random results by feeding in particles in superpositions.
This might seem like an impractical proposition for the field of computer science, but it's actually much simpler than it sounds. A number of years ago, I came across a site showing how to build an alpha radiation visualizer out of a webcam and a smoke detector. Certain smoke detectors use a small amount of radioactive material as part of their instrumentation. Directing this radiation into the CCD of a webcam creates small sparks of light, called Cherenkov radiation. Since the radiation is happening on an atomic scale, it's governed by quantum mechanics, but the light detected by the camera can be used as a source of random numbers (for example, the time between light bursts, or the location they are detected).
Thanks for the question, Nate. Everyone should feel free to send me their own.