“Random” numbers are in hot demand. They’re needed, for instance, in cryptography, to keep things like your bank account secure, and in science, where they’re used in simulating complex systems.

Yet to be useful, they say, these numbers have to be “truly” random, or “really” random. So they devise myriad tests, each more clever than the last, to test random number generators to ensure their output is “randomly” random.

No efforts are spared here. Generators come along all the time, but unless they’re made of physical hardware, and even then there are troubles, they are almost all found to be not “truly” random.

If only somebody could come up with the world’s best 100% guaranteed unpredictable perfect random number generator, why, he could rule the world!

I have done it.

Seriously serious. I did. This is not a witticism or jocularity. It is God’s honest truth. I explain how in this video:

If you haven’t watched, or even if you have, and are inclined to doubt your Uncle Sergeant Briggs, which is a sad thing to do, let me ask you this.

Take any random number generator (RNG) you like, or can imagine. Make it as wonderful in your mind as you can. For ease of example, but, as mathematicians like to say, with no loss of generality, make the RNG spit out numbers in base 2, i.e 1s and 0s.

This RNG will spit out one, and only one, random number. And then we blow it up. The generator, I mean. Who doesn’t like to blow things up? Anyway, necessarily the number the RNG spits out will be a 0 or 1. Can you guess what this number will be?

Some of you will guess 1 and some 0. Well, one set of you must necessarily be wrong, and one set necessarily right. Suppose you’re in the set that guessed right.

So the question is this: because you guessed correctly, does that mean the RNG wasn’t “truly” random, or “really” random? Or “randomly” random?

Now many of you have heard me say that “random means unpredictable”, which means I should learn to be more careful with my pithyisms (you heard me). It is true, of course, that random means unpredictable. But it means more than that.

Here you have just predicted correctly (and somebody will, we assume) the number the RNG spit out. So it can’t have been random if random means *only* unpredictability.

Rather, it depends on what unpredictability means. It means this: not knowing the cause.

If you knew the cause, in all its dimensions, of the numbers coming out of the RNG, then you’d be able to predict with certainty what those numbers would be. They would not be random to you, because you knew the causes, but they would be random to anybody else that did not know the causes.

Let’s use notation, which sometimes (though not so often), helps.

This is how you guessed:

Pr (It will be a 1 | I feel it will be a 1 ) = 1.

This reads: The probability it will be a 1, given or assuming you feel it will be a 1, is 1. (Some of you will come to the probability of 1/2 with different premises, but that is not a pick, and here I’m forcing you to pick.)

This is how I, the maker of the RNG, guessed:

Pr (It will be a 1 | I know how it works ) = 1

This reads: The probability it will be a 1, given or assuming I know all of the causes, is 1.

We both predict certain outcomes. But only one set of premises accords with external Reality, and not just your thoughts—though both sets of premises accord with each of our thoughts.

So it’s the truth of the premises and how they accord with physical Reality that count in deciding whether a thing is random or not. If you don’t know all the causes, the thing is unpredictable, and therefore random. If you do know all the causes, it is predictable, and therefore not random.

The number of matches in the box is random because you don’t know all the causes, whereas I do (now, anyway). So it is not random to me.

Which means in those fancy tests of randomness people devise, they usually turn a blind eye to the cause they know is there—like in some algorithm. Hardware generators, like that match box, are better, because the causes are more obscure, or in some cases totally hidden.

*Subscribe or donate to support this site and its wholly independent host using credit card click here*. Or use the paid subscription at Substack. Cash App: $WilliamMBriggs. For Zelle, use my email: matt@wmbriggs.com, and please include yours so I know who to thank.

the better you mislead (or are misled) with the cause, the better the randomness of what is said; try it, read “for what they built the pyramids” or any other academic template for “science knows” …

Some references readers may be interested in, for how (psuedo-) random numbers are used in computing:

Use of randomness in SSH (secure shell):

https://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch03_07.htm

Excellent Stack Overflow answer for “Where does /dev/random get its entropy?”

https://security.stackexchange.com/questions/71813/where-does-dev-random-get-its-entropy

More details on random-number sources:

https://lwn.net/Articles/884875/

And for the truly curious, you can read the source code for how the Linux kernel generates pseudo-random numbers:

https://github.com/torvalds/linux/blob/master/drivers/char/random.c

I put ten ping-pong balls with the numbers 1 through 10 written on them in a closed, opaque box and turn it over and over for thirty seconds. I open the box and put my hand in, being careful to look the other direction and not at the box. I take hold of the first ball I feel my fingers touch and bring it out. I suppose there’s a one-in-ten possibility I can predict what the number on the ball is going to be, but I certainly have not influenced the outcome, other than by only using ten balls with ten different numbers on them. That’s random enough for any conceivable purpose I might ever have.

But Briggs, how will this help me mine crypto cash?

Johnno,

If I knew, I wouldn’t tell you.

This is random comment. According to

various Ivy League student associations, from now on 2SLGBTQAI+ will now be 2SLGBTQAI+H. The “H” stands for HAMAS.

Nice. I see you’re coming round to my claim that p(x) != {0,1} implies a lack of info, not randomness.

One implication of this is that the idea that codes need random numbers is a mistake – what they need is undiscoverable (unpredictable) numbers. Consider, for example, a key generated by:

1 – pick a number n (sufficiently large .. >1E250)

2 – pick an interval m such that p(n+m contains exactly one prime) –> 0.5

3 – assign 1 if a prime appears; 0 otherwise (repeat step 3 key length times)

There is nothing random about the digits produced this way; but the code is essentially unbreakable without knowledge of at least one of n or m.

@Paul Murphy, numbers exist [in designedly physically limited hyperturbo abaci] without someone knowing them; look at the Qubit folks who promise to reverse crypto by running a copy of Bletchley Park and aim to succeed iFF you give them ever more research funds /±sarc.

Perhaps there is always a hidden cause:

And then there’s random.org, which generates its seeds from atmospheric radio noise.

Thank you for opening the box and counting. Maybe it sounds silly, but that was the denoument I was waiting for.

Aside, it strikes me that the trick in cryptography isn’t to generate a random number to base your cipher on, but to generate a number an attacker won’t guess.

“ If you knew the cause, in all its dimensions, of the numbers coming out of the RNG, then you’d be able to predict with certainty what those numbers would be. ”

Not true. In the true random number generators, those based on atomic decay or thermal noise, one cannot even in principle know enough to predict the outcome. To do so would require you to violate the uncertainty principle and know the state to a degree that humans cannot measure.