Mangler du en hurtig og fair måde at få et tilfældigt tal på? Denne gratis online generator til tilfældige tal genererer ét tal – eller en hel liste af tal – inden for ethvert interval, du selv sætter, fra et enkelt tal mellem 1 og 10 til intervaller på flere milliarder. Angiv den laveste og højeste værdi i »Min« og »Maks«, vælg hvor mange tal du har brug for med »Antal«, og tryk på »Generér«. Begge grænseværdier er med i intervallet, så et interval fra 1 til 10 kan give både 1 og 10.
Hvert resultat skabes direkte i din browser ved hjælp af Web Crypto API (crypto.getRandomValues), som bruger en kryptografisk sikker kilde til tilfældighed fra styresystemet. Intet sendes til en server, intet logges, og vi ser aldrig dine tal. Generering sker øjeblikkeligt og privat, og fungerer stadig på en langsom forbindelse, når siden først er indlæst.
Indstillingerne er lavet til de situationer, hvor folk faktisk har brug for tilfældige tal. Slå »Uden dubletter« til, så intet tal optræder to gange – præcis det, du vil bruge til lodtrækninger eller opdeling af folk i grupper uden gengangere. Skal du bruge tyve vindere ud af 500 deltagere? Sæt »Min« til 1 og »Maks« til 500, slå »Uden dubletter« til, sæt »Antal« til 20, og tryk på »Generér«. »Sorteringsrækkefølge« ordner resultatet stigende eller faldende, og én knap kopierer det hele. Skifter du »Outputformat« fra »Linjeskift« til »Adskilt med mellemrum« eller »Adskilt med komma«, dukker »Antal sæt« op: flere uafhængige træk på én gang – tyve sæt af 3 tal til tyve lodtrækningsrunder – hvor »Tillad gentagelser på tværs af sæt« afgør, om det samme tal må optræde i mere end ét af dem.
Hvordan bliver tilfældigheden egentlig skabt? Tilfældighed i browseren kommer fra styresystemets kryptografisk sikre talgenerator, ikke fra en JavaScript-PRNG. Styresystemet stiller kryptografisk sikre tilfældige værdier til rådighed for browseren. Når du trykker på »Generér«, beder sidens JavaScript browseren om rå 32-bit-værdier via crypto.getRandomValues og oversætter dem til det interval, du har sat. Du skal ikke kende eller angive nogen seed-værdi, og der er ingen netværkskald på noget tidspunkt.
At oversætte en rå værdi til dit interval er præcis dér, generatorer stille og roligt går galt, og det fortjener sit eget afsnit. At tage værdien modulo intervallets størrelse er den oplagte metode – men den giver en skæv fordeling: medmindre intervallet går lige op i 2^32, kommer de laveste tal en anelse oftere end resten. Den skævhed hedder modulo-bias, og den er målbar, ikke bare teoretisk. Denne generator forkaster i stedet de værdier, der ville give en skæv fordeling, og trækker igen – en teknik der kaldes rejection sampling. Det koster nogle ekstra træk, men køber til gengæld en eksakt garanti: hvert tal mellem »Min« og »Maks« har præcis samme sandsynlighed, ikke bare næsten samme.
Hvad gør et tal ægte tilfældigt? Et tal er tilfældigt nok, når tidligere resultater intet fortæller om det næste – og i praksis kan man skelne mellem tre måder at generere tilfældige værdier på. En almindelig pseudotilfældig funktion som Math.random() kører en deterministisk algoritme: den, der kender dens interne tilstand, kan genskabe hele sekvensen, hvilket er fint til at blande et diasshow og uegnet til alt, hvor resultatet ikke må kunne forudsiges. En kryptografisk sikker generator – som dette værktøj bruger – er også en algoritme, men den bygger på en kryptografisk sikker kilde fra styresystemet og er designet, så output intet afslører om, hvad der kommer næste gang. Fysisk tilfældighed, fra kilder som atmosfærisk støj eller radioaktivt henfald, bygger på fysiske fænomener frem for en algoritmisk proces, selvom den praktiske forskel forsvinder, når det handler om at trække et tal i et interval. Det er præcis derfor, browsere har et separat crypto-API i stedet for blot at forbedre Math.random(): de to løser forskellige problemer, og kun det ene er sikkert, når resultatet betyder noget for nogen.
En tilfældig sekvens skal ikke ligne noget tilfældigt for mennesker. Træk ti tal mellem 1 og 10, og du vil jævnligt se en gentagelse som 7, 7 eller en kort række, hvor tallene ligger højt – og hvert eneste af de mønstre er helt normalt. Ægte tilfældighed er uforudsigelig, ikke jævnt fordelt: hvert træk er uafhængigt, tidligere tal har absolut ingen indflydelse på de næste, og intet tal har nogensinde en tur til gode. Instinktet, der insisterer på det modsatte, er spillefejlslutningen, og det er samme instinkt, der gør os selv til dårlige talgeneratorer – bedt om at opfinde en tilfældig sekvens undgår vi gentagelser og spreder værdierne langt mere jævnt, end tilfældigheden nogensinde gør. Et resultat, der ser mistænkeligt pænt ud, er et menneskes fingeraftryk; ægte tilfældighed skaber klumper.
Hvorfor vælge denne generator til tilfældige tal?
- Kun generering i browseren: tallene skabes på din enhed og sendes aldrig nogen steder hen
- Tilfældighed fra Web Crypto API: kryptografisk sikkert, ikke Math.random()
- Ingen modulo-bias: rejection sampling holder alle tal i intervallet lige sandsynlige
- Ethvert interval: fra 1 til 10 til værdier på flere milliarder, begge grænser inklusive
- Tilstanden »Uden dubletter«: træk en liste uden gengangere til lodtrækninger og gruppeopdelinger
- Flere sæt: adskillige uafhængige træk med ét klik
- Sortering og outputformater: stigende eller faldende, linjeskift, mellemrum eller komma
- Historik og gem til fil: hold styr på et træk, du måske skal kunne dokumentere
- Ubegrænset og gratis: ingen oprettelse af konto, ingen brugsgrænser, intet gemt på vores servere
Tilfældige tal dukker op flere steder, end de fleste regner med. Lærere vælger elever uden at favorisere nogen. Streamere og marketingfolk finder vindere af giveaways og lodtrækninger foran et publikum, der skal kunne tro på resultatet. Spillere erstatter en tabt terning eller afgør, hvem der starter, og turneringer finder startrækkefølgen ved lodtrækning. Forskere udtager en tilfældig stikprøve, så deres resultater kan generaliseres ud over dem, der meldte sig frivilligt. Udviklere genererer testdata, sætter seed til simulationer og vælger id'er under QA. Det fælles træk er en tilfældig udvælgelsesproces, der kan forklares bagefter: fordi trækket bruger kryptografisk tilfældighed og sker udelukkende på din egen enhed, kan du vise, hvordan resultatet blev til, hvis nogen stiller spørgsmål ved det.
Denne generator har nogle få ærlige begrænsninger, det er værd at kende. »Uden dubletter« kan ikke trække flere tal, end intervallet indeholder: tyve unikke værdier mellem 1 og 10 findes simpelthen ikke. Træk er uafhængige, og tidligere resultater påvirker ikke senere træk, så genindlæsning af siden nulstiller ikke en cyklus – der er ingen cyklus at være i. Og selvom tallene er kryptografisk stærke, er et træk her et fair træk, ikke en forudsigelse: officielle lodtrækninger bruger deres eget fysiske eller certificerede udstyr, og intet, der beregnes i din browser, har nogen forbindelse til dem. Inden for de grænser er garantien til gengæld stærk: hvert tal i dit interval har præcis samme chance, hver eneste gang.