Wat is een Random Number Generator (RNG)?

Een willekeurige getallengenerator (RNG) is een wiskundige constructie, hetzij rekenkundig of als hardware-apparaat, die ontworpen is om een willekeurige reeks getallen te genereren die geen onderscheidbare patronen in hun verschijning of generatie mogen vertonen. Vandaar het woord willekeurig. Het wordt vaak gebruikt in de vorm van een functie of codeblokken in softwaretoepassingen zoals spellen waar een element van toeval nodig is.
Een Random Number Generator bestaat eigenlijk al heel lang
Random number generators zijn slechts de moderne toepassing van willekeurigheden die al sinds de oudheid bestaan, zoals dobbelstenen, geschudde kaarten, het omdraaien van munten en zelfs het trekken van rietjes. In moderne computers worden willekeurige getallengeneratoren geïmplementeerd door middel van programmering op basis van deterministische berekeningen, maar dit wordt niet echt als echt willekeurig beschouwd omdat de uitvoer eigenlijk kan worden voorspeld als alle zaadwaarden bekend zijn, dus dit wordt pseudorandom getallengeneratie genoemd. In de praktijk is dit echter voldoende om de meeste taken uit te voeren. Echte willekeur is niet altijd nodig; sommige toepassingen hebben er zelfs geen baat bij. Neem de “random” functie in een muziekspeler; deze lijkt alleen random omdat als hij echt random is, hij geen beperkingen zou hebben voor het twee of meer keer achter elkaar afspelen van dezelfde tracks. Er kunnen zelfs algoritmes zijn om het selectieproces te controleren.
Een Random Number Generator moet compleet willekeurig zijn
Een echte willekeurige nummergenerator kan niet vertrouwen op wiskundige vergelijkingen en computationele algoritmen om een willekeurig nummer te krijgen, want als er een vergelijking aan te pas komt, dan is het niet willekeurig. Om echte willekeurigheid te krijgen, moet een apparaat entropie verzamelen uit de natuurlijke omgeving om te meten, zoals atmosferische en thermische ruis en andere kwantum- en elektromagnetische verschijnselen. Een voorbeeld van een random getalgenerator is een apparaat dat radiogeluiden meet en die waarde eruit haalt en aan de gebruiker of toepassing presenteert. Andere bronnen van entropie zijn subatomaire fysische fenomenen zoals radioactief verval waarvan de onvoorspelbaarheid en willekeurigheid verklaard kan worden door de wetten van de kwantummechanica.
Willekeurige getallen uitgelegd
Wil een getal in een reeks of verdeling echt willekeurig zijn, dan moet het onafhankelijk zijn. De onafhankelijkheid van getallen betekent dat er geen correlatie is tussen opeenvolgende getallen. Bovendien moeten deze getallen met ongeveer dezelfde frequentie voorkomen in de verdeling.
Willekeurige getallen worden bijna altijd afgeleid van een reeks decimale getallen van één cijfer: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. De taak om willekeurige cijfers te genereren uit die verzameling getallen met fysieke middelen is niet triviaal. Een veelgebruikt schema is de selectie van genummerde pingpongballen uit een set van 10, zoals vaak voorkomt in lottospellen en loterijen.
Elk balletje draagt een cijfer en wordt door een luchtstraal in een container gecirculeerd. Nadat elk nummer is gekozen, wordt het balletje met dat nummer teruggeplaatst in de set. De ballen worden opnieuw rondgeblazen voordat een andere bal wordt geselecteerd. Het proces gaat door tot de gewenste set willekeurige getallen is gegenereerd.
In het algemeen is het extreem moeilijk voor mensen om een willekeurige lange reeks cijfers te produceren en te bewijzen dat het volledig willekeurig is, dus zijn er computerprogramma’s en algoritmes nodig. Deze programma’s kunnen sommige cijfers in een verdeling voorspellen op basis van eerdere cijfers om zo een redelijk willekeurige verdeling te maken.
Willekeurige getallen genereren uit irrationele getallen
Soms worden de cijfers in de decimale expansie van irrationale getallen gebruikt om willekeurige getallen te verkrijgen. De meeste gehele getallen hebben irrationele vierkantswortels, dus een reeks van zes of acht cijfers invoeren in een rekenmachine en dan op de vierkantswortelknop drukken kan een reeks cijfers opleveren die willekeurig lijkt. Er zijn ook andere algoritmes bedacht die zogenaamd willekeurige getallen genereren.
Het probleem met deze methoden is dat ze de tweede voorwaarde in de definitie van willekeurigheid schenden, zoals hierboven beschreven. Elk algoritme dat getallen genereert, produceert toekomstige waarden gebaseerd op vroegere en/of huidige waarden. Cijfers of getallen die op deze manier gegenereerd worden, worden pseudorandom genoemd.
Methoden om willekeurige getallen te produceren
Statistici, wiskundigen en wetenschappers hebben lang gezocht naar de ideale bron van willekeurige getallen. Een veelgebruikte methode was het bemonsteren van elektromagnetische ruis. Deze ruis — gegenereerd door de chaotische bewegingen van elektronen, gaten of andere ladingsdragers in materialen en in de ruimte — wordt verondersteld zo dicht bij “volledig willekeurig” te komen als enig waarneembaar fenomeen. Een andere methode die ook willekeurige getallen genereert is radioactief verval. Getallen die voortkomen uit dergelijke onvoorspelbare fysische processen worden als willekeurig of “willekeurig met een uniforme verdeling” beschouwd.
Toepassingen die baat hebben bij echte willekeur zijn spellen zoals gerelateerd aan goksites zonder cruks, bingo, kaartspellen, de loterij en soortgelijke spellen. Videospellen die de nadruk leggen op het willekeurig verzamelen van buit hebben ook baat bij echte willekeur, omdat het genereren van pseudo-willekeurige getallen tot frustratie kan leiden. Omdat het lang kan duren zonder dat het doelgetal wordt bereikt of omdat hetzelfde getal herhaaldelijk kan worden verkregen.