From an engineering/programming point of view, I wouldn't say it's a paradox. It's an engineering challenge to make something random enough
, or unpredictable enough for the intended application.
I think I could program a slot machine that's random-enough that you would run-out of quarters before you could ever figure-out the "pattern".
And, I wouldn't have to use any of those fancy quantum-physics or true-noise "tricks". (I probably would so something with the "random" time between handle-pulls.)
If you are a philosopher, perhaps it is a paradox. Or, perhaps the answer is simple... perhaps nothing is truly random since God (or a theoretical all-knowing being or an all-powerful machine) could always predict the next number...
You can make a pseudo-random generator (PRNG) that will pass lots of statistical 'tests' for randomness - but it may cryptographically weak as water.
You(*) can make a cryptographically secure pseudo random generator that - assuming it has a truly random seed value - generates unpredictable output (unpredictable in practice). This will also pass all the statistical tests of course. A strong crypto RNG has the property that given any amount of its output you cannot (without peeking at the seed or hidden state) compute any of the other output (before or after the given sample) in practice. Most simple PRNGs fail totally at this (and thus should never be used to generate cryptographic keys!!) [ "In practice" means something like "cannot be done without a billion processors for a million years" ]
Or you can generate truly random numbers using a physical source of randomness. This is a good way to provide a seed for a crypto PRNG.
(*) You, personally, cannot do this
- you have to use an existing trusted design. In fact even the best experts struggle to make good crypto - the best crypto has been around for years and many experts have tried many times to break it and failed. All roll-your-own crypto RNGs will be incredibly weak (to a very close approximation).