Do you own an iOS or Android device? Check out our app!
RANDOM.ORG is a true random number service that generates
randomness via atmospheric noise. This page explains how
RANDOM.ORG came about back in 1997 and how it has progressed
through different stages to the form it has now.
Chapter 0: How It All Began… (1997)
RANDOM.ORG started during the summer of 1997 when I was working
for a startup that was building an engine for online gambling. It
was a small operation: just four guys constructing a prototype with
the intention of raising money for further development. The engine
was designed such that there was a core of functionality for which
various game modules could be written. We implemented a prototype
of the engine itself and a series of game modules that allowed you
to play lottery, blackjack and slot machines in your web browser.
We realised early on that any serious gambling engine needed
proper random numbers to support games involving real money. (If
you want to know what can happen if you don’t use true random
numbers for your gambling system, read this
article about the 1980s TV show Press Your Luck.)
After reading up on randomness, we decided that a radio picking up
atmospheric noise was a cheap and elegant way to gather entropy for
random number generation. Also, since the generator would be in our
office, the radio approach had the advantage over systems based on
Geiger counters (which are quite popular also) that the radios did
not require a radioactive source.
The first version of the random number generator was based on a
$10 radio receiver from Radio Shack. We had a lot of fun buying
that receiver. We knew that many radios, even the cheaper ones,
came with noise filters and would only let you listen when you were
actually tuned into a station. So when we got to the shop, we
explained to the sales guy that we needed the cheapest radio he had,
because we wanted our computer to listen to static. He didn’t seem
quite convinced about our sanity. We also insisted that he let us
try out the radio in the shop so we could check the quality of the
noise and verify that the thing really did not have a filter.
Amazingly, he let us do this (kudos to Radio Shack; remember, this
was a $10 sale) and when we heard the noise, everybody (I think
there were three of us in the shop) jumped up and down ecstatically,
quickly paid the $10 and left with the radio. We must have seemed
pretty crazy.
Over the next couple of days, we wrote the first version of the
generator. It was written in C/C++ and ran on Windows NT using a
standard sound card, the brand of which I don’t remember. While it
was perfectly functional, it was a little crude in that it generated
raw random bits and not the nice configurable intervals that you see
on RANDOM.ORG today. However, it was fine for shuffling decks of
cards for blackjack, picking lottery numbers and spinning wheels on
our slot machine.
So what happened to the gambling engine? Technically, the
prototype engine and associated architecture were really sound, but
the company eventually decided not to go ahead with its gambling
program, and so not much came of our efforts. In retrospect, we
were probably doing this a little too early. This was in 1997, and
we thought the online gambling market was going to take off in a
year or two, but in reality it took much longer for that to happen.
RANDOM.ORG is the only part of that project that survives today. My
friends decided not to pursue the gambling project further and
instead went off to start two successful companies: Pentia and Sitecore.
Chapter 1: The Sun Days (1998-2001)
In September 1998, I had started doing a PhD in Computer Science
at Trinity College, Dublin. My
thesis topic was in the area of mobile computing and as such had very
little to do with randomness, but since I had done most of the work
on the generator the year before and really liked the idea of using
atmospheric noise for generating random numbers, I decided it would
be a waste if it would just be forgotten. So, I explained the idea
to Vinny Cahill, who was the head of my research group (the Distributed Systems Group) and
suggested we host the service there. Vinny was happy to support the
idea, so over the next couple of months, I scavenged an old Sun
SPARCstation that was standing around in our lab, rewrote the random
number generator for the Solaris operating system and finally put
together the first version of the RANDOM.ORG web site. This site
went online in October 1998.
At the time, there were no public random number services that
used atmospheric noise, but HotBits and Lavarand (the
original Silicon Graphics version) already existed. So, why yet
another? The most important reason is because it was fun to make.
The second most important reason is that the existing services were
mostly for educational purposes and for fun. My intention with RANDOM.ORG was certainly to build a service that would be educational
and fun but also a service that would be useful for certain
(non-critical) applications that needed random numbers. Since then,
people have used the service for more things than I had ever thought
would be possible, and the service has been updated many times to
support much more serious applications than I had originally
intended.

RANDOM.ORG v1 (with
whiskey bottles)
The picture shows the first RANDOM.ORG setup as it looked
from 1998 to 2001. (However, the picture was actually taken in
2005.) The radio is a Hitachi transistor radio that I got for free
because the tape recorder was broken. Since the whole setup was
placed on a shelf in our postgraduate research lab, and I was a
little worried that someone might mess with the radio out of
accident or curiousity, I placed a post-it note on the radio
asking people not to touch it.
Just left of the radio, you see the rear panel of the Sun
SPARCstation I was using. I have no idea how fast it was, but it
didn’t seem fast, not even then. However, it did have 96 MB of
memory, which was a lot at the time, so it could easily run the
software, and it also had a built-in sound card and was therefore
easy to connect to the radio. The machine ran the Solaris operating
system, which was incredibly stable and therefore perfectly suited
for the purpose. On the very left in the picture, you see the 500
MB (yes, that’s megabytes) SCSI disk that held the files.
Behind the radio, you can just about make out the UPS, which was a
later addition.
And the bottles? They are there because we have a tradition in
the Distributed Systems Group that whenever you get a paper accepted
at a conference or in a journal, you buy a bottle of Irish whiskey
(or some other pleasant drink) and share it with the group
to celebrate. As you can see from the photo, each bottle has a
yellow post-it note that tells which conference or journal was
involved and who was the person to get published.
Chapter 2: The Dual-Radio Generator (2001-2007)
In autumn 2000, the SPARCstation was starting to show signs of
age, and I started looking for a new machine. Also, I had taken on
Antonio Arauzo Azofra as a final year student in Computer Science to
do a randomness-related project. His task was to implement a new
and fancy statistics module, which was stable enough to be suitable
for production deployment on RANDOM.ORG. He did this very well and
also did a lot of really good work in relation to configuring the
‘new’ server – a Siemens Scenic 300 PC I had
scavenged. Antonio convinced me to use Debian GNU/Linux (I was
rather bent on Red Hat at the time), then installed the hardware and
software and even helped maintain it after he had finished his
studies in Dublin and returned to Spain to start a PhD.
From the summer of 2001, RANDOM.ORG operated with the Siemens PC
in a dual-radio setup. The heart of the PC was a Pentium III CPU
clocked at 500 MHz. Initially, the machine had 128 MB of memory,
but it was later upgraded to 384 MB. The machine was equipped with
three Cirrus Logic Crystal CS4281 sound cards and two FM tuners (one
was a Sony, the other a Tensai) that I bought second-hand for
(Irish) £30 (around €40) at the Blackberry Market in
Dublin. The picture below shows the setup. The Siemens PC is the
one lying horizontally on top of the other two, and the two radios
are stacked on top. Although the setup was no longer placed in a
postgraduate lab but in my personal office, I was still concerned
about people (e.g., cleaners) accidentally interferring with the
radios and disrupting the service, and I therefore placed another
sign (covering the radios) asking people to be careful.
The operating system that I used on this setup was Debian
GNU/Linux 3.0 (‘Woody’), which was amazingly stable.
(It was the first time I used Debian, and I’m still a convert
– kudos to the Debian team for their excellent work.) The
generator was configured to sample the noise from the radios as an
audio stream of 8-bit samples in mono at a sampling rate of 8 Khz.
This yielded a total of 1,500 random bits per second per radio, so a
total of 3,000 bits per second with the two radios.
Chapter 3: The Triple-Radio Setup (2007-2009)
During the period from early 2007 to late 2009, RANDOM.ORG used two different
hardware configurations. For most of 2007, it ran on a Dell
Dimension 4550, which was kindly donated by René Meier and
Jim Dowling from the Digital Business
Ecosystem (DBE) research project. This machine had a Pentium 4
CPU clocked at 2.53 GHz and was equipped with 1 GB memory. I
equipped it with three CM8738 sound cards from C-Media Electronics
and the same two FM tuners that I used from 2001-2007, but also
added an Akai tuner that I bought for DKK100 (€12) in a
second-hand shop in Copenhagen.
In late 2007, I switched the Dell Dimension for an IBM eServer
with 1,280 MB memory and a Pentium III CPU clocked at 1.266 GHz.
Despite having a lower CPU spec than the Dimension, the eServer could
easily keep up with demand, and it had the advantage that it was a
genuine server grade machine and therefore had SCSI disks, which were
well suited for the purpose. The sound cards and radios were the
same as for the Dimension setup.
(todo: photo of the IBM setup here)
This setup generated about 3,000 bits per second per radio. It
still used Debian GNU/Linux but was upgraded to versions 3.1
(‘Sarge’) and 4.0 (‘Etch’) as they became
available. These versions of Debian GNU/Linux were as stable their
predecessors and quite a bit easier to configure than earlier
releases of Debian. Highly recommended.
Chapter 4: RANDOM.ORG Today (2009-)
In late 2009, RANDOM.ORG underwent a major restructuring in
response to the increasing number of clients and their need for good
reliability and performance. There is now a distributed
configuration in which a number of nodes in
different geographic locations generate randomness, subject it to
statistical tests and then stream the distilled random bits to a
cloud hosting service from which the RANDOM.ORG services run.
This new architecture has increased the reliability as well as the
performance of the service and helps make RANDOM.ORG suitable for
the serious applications (e.g., lottery drawings)
that are now offered. Tried and true, the random numbers are still
generated with atmospheric noise, but the hardware and software used
today is a long way from the $10 receiver from Radio Shack that
started it all back in 1997.
Chapter N: The Future?
RANDOM.ORG is still undergoing exciting developments many cool
projects are in the works. For the latest updates, check out the news page or simply sign up for the newsletter (and get a chance to win
iPods).
