Genuine random numbers, generated by radioactive decay

Click the icon to turn sound effects off and on.

Retirement Announcement

Since May 1996, Fourmilab has made HotBits available for free on the Web to all who wanted them, subject only to a daily quota to avoid exhausting the limited capacity of the generator mechines and, later, an API key to defend the site against the denial of service attacks any resource on the Web inevitably attracts.

Migration of the Fourmilab site to cloud hosting on Amazon Web Services has made it increasingly difficult to support HotBits, especially on the existing hardware, some of which is two decades old. Consequently, the radioactively-generated HotBits server has been retired as of the end of 2022 (more precisely, at 00:00 UTC on 2023-01-01).

HotBits API key holders may request data from a “secondary hardware random number” generator which uses the Intel CPU built-in RDSEED instruction to generate random data. To use the secondary generator, use the same API key you have been using, but with the initial “H” replaced by an “R”. Other than the source of the random data, requests using the secondary generator work exactly like those using the radioactive generator.

I have no knowledge of the internal operation of the Intel RDSEED generator and do not certify its suitability for any purpose. Access to it is provided purely as a convenience for users of HotBits who wish an alternative when it shuts down. The pages describing the radioactive generator will remain accessible as an archive of the project and guide to those interested in setting up their own servers.

Since 2022-09-01, new API keys have been issued only in the “RB1” form. These keys will function only with the secondary generator and are not affected by retirement of the radioactive generator.

Please see the “HotBits Radioactive Generator Retired” page for additional information.

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

The Decide utility

Valid XHTML 1.0
by John Walker
May, 1996
Last update: January 2023