Random.org - a story length of 20 years

    Very soon, as part of the Server in the Clouds project, we will have a balloon, whose coordinates of the landing site are a true generator of truly random numbers, in which the movement of air masses is the source of entropy. At the time of writing this post, more than 100 masters take part in this intellectual race - to guess / calculate the server landing site and win a certificate for participation in the regatta. Join us In the meantime, there is a race and preparation for the flight, we remembered that at Random.org



    , one of the most popular online generators, providing truly random numbers, the source of entropy is also the atmosphere, more precisely, atmospheric noise. In addition, the site will soon celebrate the 20th anniversary. And the history of Random.org turned out to be so enchanting, and in the spirit of our project, that in honor of the “entropic coincidence” and a quick jubilee, we decided to translate it for you.

    The site Random.org was launched in October 1998 by Mads Haahr, a computer science professor at Trinity College in Ireland, and in October 2010, from a private project, turned into a closed joint-stock company.


    The task of Random.org is to generate and provide everyone with truly random numbers based on atmospheric noise, that is, radio noise generated by natural atmospheric processes. On the main page, you can generate a random number in the range from 1 to 1,000,000,000.

    For this purpose, just do not use Random.org today: for betting in sweepstakes, for online games, for research, for creating images, music and many other tasks . To date, Random.org has generated over 1.6 trillion random bits.

    History of Random.org


    Лава Chapter 0: How it all began ... (1997)


    The history of Random.org began in the summer of 1997, when I was working at a startup that developed an online gambling engine. It was a small project: four people made a prototype in the hope of raising money to continue development. The engine had basic functionality and could be supplemented with modules of various games. We implemented a prototype of the engine itself and several gaming modules that allowed the browser to play the lottery, blackjack and slot machines.

    We quickly realized that a serious engine needs a true random number generator that would support games that involve real money (if you want to know what can happen if you don’t use a true random number generator in the game system, read the article on TV show 1980 "Press Your Luck"). After reading about the theory of chance, we decided that a radio that captures atmospheric noise would be a cheap and elegant way to get entropy for generating random numbers. In addition, the generator will be in our office, that is, the radio has an advantage over systems based on a Geiger counter (which are also quite popular), since the radio does not need a source of radiation.

    The first version of our generator, we collected on the basis of the receiver for $ 10 from the store Radio Shack. His purchase was a funny story in itself. We knew that many radios, even cheap ones, contain noise filters and play only if you are tuned in to the transmission of a radio station. Therefore, having come to the store, we explained to the seller that we need the cheapest radio, because our computer needs to hear static noises. The man was clearly not sure of the sanity of our mind. We also insisted that the seller allow us to test the radio in the store, so that we could be convinced of the quality of the noise and the absence of a noise filter. Surprisingly, he allowed us to do this (Respect Radio Shack, because it was a sale for $ 10), and when we (I think there were three of us) heard noises, we jumped up happily and paid for it quickly. I think

    In a few days we wrote the first version of the generator. It was written in C / C ++, spinning under Windows NT and using a standard sound card, I don’t remember the manufacturer. Although the generator was fully functional, it turned out to be somewhat clumsy in the sense that it generated just random bits, and not beautiful custom intervals that you see on Random.org today. However, this was enough to shuffle the card decks for blackjack, select lottery numbers and spin the wheels in slot machines.

    What happened to our engine? The prototype and architecture were really good, but in the end the company decided to stop developing gambling, so we didn’t have much to do. I think we are somewhat ahead of time. It was 1997 in the yard, and we thought that in a year or two the online gambling market would take off. But in reality it took much longer. Random.org is the only surviving part of that project. My friends abandoned gambling and founded two successful companies: Pentia and Sitecore .

    ▍ Chapter 1: Sun Days (1998-2001)


    In September 1998, I took up my PhD thesis in computer science at Trinity College in Dublin . The topic of the thesis was related to mobile computing and had very little to do with random numbers. But since last year I did most of the work of creating a generator and I really liked the idea of ​​using atmospheric noise to generate random numbers, I decided not to abandon the project. Vinny Cahill told about him, the head of my research group ( Distributed Systems Group), and proposed to place the system in one of the rooms. Winnie enthusiastically supported the proposal, and within a couple of months I adapted the old Sun SPARCstation, which was in the laboratory, rewrote the generator for the Solaris OS and made the first version of the site Random.org. He began working in October 1998.

    At the time, there were no publicly available random number generation services based on atmospheric noise, but HotBits and Lavarand already existed(original version of Silicon Graphics). Why was another generator needed? The main reason - I was interested in creating it. The second reason is that the available services served mainly for learning and entertainment. I wanted Random.org to be used for learning and entertainment too, but at the same time I wanted to turn it into a service useful for solving certain (non-critical) tasks that require random numbers. Since then, people have used Random.org for purposes that I could not even conceive of, and the service was updated many times so that it could be used for far more serious tasks than I had intended.


    Random.org v1 (with bottles of whiskey)

    This photo shows the first version of the equipment Random.org, so everything looked from 1998 to 2001 (although this was removed in 2005). The Hitachi radio transistor receiver, which I got for free, because the built-in cassette was broken. Since the whole system was located on a shelf in our graduate laboratory and I was afraid that someone would break it all accidentally or intentionally, I put a piece of paper on the radio with a request not to touch it.

    To the left of the radio you can see the back panel of the Sun SPARCstation, which I adapted for my needs. I can not imagine how fast it worked, but according to impressions it was not fast, even completely. But she had 96 MB of memory, a lot for those times, so there were no problems with launching applications. In addition, Sun SPARCstation had a built-in sound card, so it was easy to connect it to the radio. The machine was running Solaris, an incredibly stable OS that was perfect for my service. On the left edge of the shelf, you see a 500-megabyte (yes, megabyte ) SCSI disk on which all files were stored. Behind the radio is the UPS, which I added later.

    What about bottles? It was a tradition in our research group, when your work is accepted for a speech at a conference or publication in a magazine, you buy a bottle of Irish whiskey (or another pleasant drink) and celebrate with your colleagues. As you can see, there is a sticker on each bottle, explaining in honor of which conference or magazine it was bought and who is lucky.

    ▍ Chapter 2: Generator with two radio (2001-2007)


    In the fall of 2000, the SPARCstation began to show signs of aging, and I began to look for a new car. In addition, I took undergraduate Antonio Arauzo Azofra (Antonio Arauzo Azofra), so that he did something for my project. The task of the student was to implement a new statistical module, stable enough to be deployed on Random.org. Antonio did an excellent job with the task and was very helpful in configuring the “new” Siemens Scenic 300 PC server that I got. Antonio also convinced me to switch to Debian GNU / Linux (I was inclined towards Red Hat), installed hardware and software, and even helped accompany the system after I graduated from Dublin and returned to Spain to work on my PhD thesis.

    Since the summer of 2001, Random.org has been working on a Siemens computer with two radios. The heart of the computer was the Pentium III, which worked at up to 500 MHz. Initially, the car was 128 MB of memory, but later I increased to 384 MB. The computer was equipped with three Cirrus Logic Crystal CS4281 sound cards and two FM tuners (one Sony, the second Tensai), which I bought second-hand for about € 40 from the Blackberry Market in Dublin. The photo below shows how everything looked. Siemens stands on two other computers, and there are two radios on it. Although the system was no longer in the laboratory, in my personal office, I was still worried about visitors (for example, cleaners) who could accidentally knock down the radio settings and disrupt the service, so I wrote a request to be careful.


    Random.org v2

    As an OS, I used the awesomely stable Debian GNU / Linux 3.0 ('Woody') (this was my first experience with Debian, and I'm still a fan - respect the Debian team for its excellent work). The generator was configured to take noise from the radio tuners in the form of an audio stream from 8-bit samples to mono with a sampling frequency of 8 kHz. That is, 1,500 random bits per second were shot from each radio, a total of 3,000 bits per second.

    ▍ Chapter 3: System with three radio (2007-2009)


    From the beginning of 2007 to the end of 2009, Random.org used two different hardware configurations. For most of 2007, the Dell Dimension 4550 worked for me, which was presented to me by René Meier (René Meier) and Jim Dowling from the Digital Business Ecosystem research project . The computer was a Pentium 4 with a frequency of 2.53 GHz and 1 GB of memory. Later, I installed three C-Media Electronics CM8738 sound cards, and the same two FM tuners were used as radio, but I added Akai, bought for € 12 in a used goods store in Copenhagen.

    At the end of 2007, I replaced the Dell Dimension with an IBM eServer with 1280 MB of memory and a Pentium III 1.266 GHz. Although the processor was weaker than Dell, eServer easily handled the load. At the same time, he was a real server with SCSI disks, well suited for my tasks. Sound cards and radio remained the same.

    This hardware system from each radio generated about 3000 bits per second. Debian GNU / Linux was used as the OS, but already versions 3.1 ('Sarge') and 4.0 ('Etch'). They were as stable as their predecessors, but much easier to configure. Highly recommend.

    ▍Chapter 4: Random.org today (2009-)


    At the end of 2009, Random.org went through restructuring in response to an increase in the number of customers who need good reliability and performance. Now it is a geographically distributed system with several nodes generating randomness. The data from them is subjected to statistical testing, and then the stream of cleared random bits is transferred to the cloud hosting, in which the Random.org service runs. This architecture has higher reliability and performance, so Random.org is suitable for solving serious problems (for example, lottery draws). Time-tested, random numbers are still generated based on atmospheric noise, but the hardware and software are far from the ten-dollar receiver from Radio Shack, from which it all started in 1997.

    ▍Head N: Future?


    Random.org is still actively developing, there are many cool projects in the work. Follow the news or subscribe to our newsletter (and you can win an iPod).



    Speaking of randomness. At the moment, the estimate of the probabilities of the landing site of our server is as follows:


    After the contest, we will try to apply the Monte Carlo method and evaluate how the coordinates put on the map by our participants turned out to be random.

    Also popular now: