HotBits: 

Genuine random numbers, generated by radioactive decay


Click on the icon to turn off the sound effects. If your browser doesn't do Java, you won't hear the sound effects anyway. If you like, you can download source code for the applet.

People working with computers often sloppily talk about their system's “random number generator” and the “random numbers” it produces. But numbers calculated by a computer through a deterministic process, cannot, by definition, be random. Given knowledge of the algorithm used to create the numbers and its internal state, you can predict all the numbers returned by subsequent calls to the algorithm, whereas with genuinely random numbers, knowledge of one number or an arbitrarily long sequence of numbers is of no use whatsoever in predicting the next number to be generated.

Computer-generated “random” numbers are more properly referred to as pseudorandom numbers, and pseudorandom sequences of such numbers. A variety of clever algorithms have been developed which generate sequences of numbers which pass every statistical test used to distinguish random sequences from those containing some pattern or internal order. A test program is available at this site which applies such tests to sequences of bytes and reports how random they appear to be, and if you run this program on data generated by a high-quality pseudorandom sequence generator, you'll find it generates data that are indistinguishable from a sequence of bytes chosen at random. Indistinguishable, but not genuinely random.

HotBits is an Internet resource that brings genuine random numbers, generated by a process fundamentally governed by the inherent uncertainty in the quantum mechanical laws of nature, directly to your computer in a variety of forms. HotBits are generated by timing successive pairs of radioactive decays detected by a Geiger-Müller tube interfaced to a computer. You order up your serving of HotBits by filling out a request form specifying how many random bytes you want and in which format you'd like them delivered. Your request is relayed to the HotBits server, which flashes the random bytes back to you over the Web. Since the HotBits generation hardware produces data at a modest rate (about 100 bytes per second), requests are filled from an “inventory” of pre-built HotBits. Once the random bytes are delivered to you, they are immediately discarded—the same data will never be sent to any other user and no records are kept of the data at this or any other site. (Of course, if you're using the random data for cryptography or other security-related applications, you can't be certain I'm not squirreling away a copy. But I'm not, really.)

An alternative to downloading HotBits for later use is provided by the randomX package for Java. A program developed with randomX can select from a variety of pseudorandom sequence generators or genuine random data from HotBits, obtained on demand across the Internet.

Secure Server HotBits Request             Legacy Insecure Server HotBits Request

How HotBits Works

HotBits Hardware Description

HotBits Software Driver

Statistical Tests of HotBits Data

The randomX package for Java


Valid XHTML 1.0
by John Walker
May, 1996
Last update: September 2006