Hvor du bør starte
Les hva en tilfeldig tallgenerator er: maskinvarebaserte, pseudotilfeldige og kryptografisk sikre generatorer, hvorfor tall gjentar seg, og hva nettleseren kan tilby. Når du trenger tall i stedet for en forklaring, trekker den tilfeldige tallgeneratoren dem i nettleseren din i et hvilket som helst intervall, med eller uten gjentakelser.
Hvor generatorer i det stille gjør feil
En sterk kilde til tilfeldighet er bare halve jobben. Den andre halvparten er å overføre råverdiene til intervallet ditt, og det er her mange hjemmelagde generatorer svikter. Å ta en verdi modulo størrelsen på intervallet er den mest nærliggende metoden, men den gir en subtil skjevhet: med mindre størrelsen på intervallet deler kildens verdiområde helt jevnt, vil de laveste tallene i intervallet dukke opp litt oftere enn resten. Denne svakheten kalles modulo-skjevhet (modulo bias). Én løsning er forkastningsutvalg (rejection sampling): kast verdiene som faller i den ujevne enden, og trekk på nytt. Generatoren vår gjør nettopp dette, slik at hvert tall i intervallet ditt har nøyaktig samme sjanse ved hver trekning.
Den samme logikken utelukker snarveiene folk ofte tyr til først. Math.random() gir ingen garantier for sikkerhet, og regnearkfunksjoner som RAND() og RANDBETWEEN() tilhører samme klasse: greie for en grov blanding, men feil for alt noen kan komme til å bestride.
Tall, lister og terninger
En tilfeldig tallgenerator gir tall fra et intervall du angir. En tilfeldig velger jobber med en liste du limer inn — navn, deltakere, alternativer — slik at du slipper å koble tall til rader for hånd. For brettspill kan du kaste terninger og summere totalene automatisk, og for et valg mellom to alternativer holder det med kron eller mynt. Når tilfeldigheten skal sikre noe i stedet for å avgjøre noe, bruker du den sterke passordgeneratoren. Alle sammen henter tilfeldigheten fra den samme kryptografisk sikre kilden i nettleseren din.