Generator til tilfældige tal

Generér et tilfældigt tal, en liste eller flere sæt tal i et hvilket som helst interval – alt sammen skabt direkte i din browser ved hjælp af kryptografisk sikker tilfældighed, aldrig på en server.

Tryk på Generér for at få resultatet
Indstillinger

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?

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.

FAQ

Er tilfældigheden kryptografisk sikker?

Ja. Den bruger din browsers Web Crypto API (crypto.getRandomValues), som henter tilfældighed fra dit styresystems kryptografisk sikre kilde. I modsætning til simple pseudotilfældige funktioner er dens output designet til at være uforudsigeligt i praksis, og rejection sampling sikrer, at alle tal i intervallet er lige sandsynlige i stedet for at favorisere de laveste værdier.

Hvordan genererer jeg et tilfældigt tal i et bestemt interval?

Indtast den mindst mulige værdi i feltet »Min« og den størst mulige i feltet »Maks«, og tryk derefter på »Generér«. Begge grænseværdier er med i resultatet, så et interval fra 1 til 10 kan give både 1 og 10.

Kan jeg generere flere tilfældige tal på én gang?

Ja. Sæt feltet »Antal« til det antal, du har brug for (op til 1000), så laver generatoren hele listen med ét klik. Bagefter kan du kopiere alle resultaterne til udklipsholderen med kopiknappen eller gemme dem i en fil.

Kan jeg generere flere sæt af tal på én gang?

Ja. Skift »Outputformat« fra »Linjeskift« til »Adskilt med mellemrum« eller »Adskilt med komma« for at få feltet »Antal sæt« frem. Sæt det til, hvor mange uafhængige træk du har brug for – for eksempel tyve sæt af 3 tal til tyve lodtrækningsrunder – og vælg, om dubletter må gå igen på tværs af de forskellige sæt.

Kan jeg sortere de genererede tal?

Ja. Brug indstillingen »Sorteringsrækkefølge« til at ordne hver liste stigende eller faldende, eller lad den stå på »Ingen« for at beholde tallene i den rækkefølge, de blev trukket i.

Hvordan undgår jeg dubletter blandt tallene?

Slå »Uden dubletter« til. Med den slået til er hvert genereret tal i listen forskelligt – ideelt til lodtrækninger, præmietrækninger eller opdeling af folk i grupper. Bemærk, at antallet ikke kan overstige intervallets størrelse: du kan ikke trække 20 unikke tal mellem 1 og 10.

Hvorfor bliver de samme tal ved med at gå igen?

Fordi uafhængige træk godt kan gentage sig – og det er præcis sådan, tilfældighed ser ud. Hvert træk ser fuldstændig bort fra alle tidligere træk, så i et interval fra 1 til 10 har det samme tal en chance på 1 ud af 10 for at komme to gange i træk, hver eneste gang – det er almindeligt, ikke en fejl. Har du brug for en liste uden gengangere, så slå »Uden dubletter« til; det er en bevidst begrænsning af trækket, ikke en rettelse af en fejl.

Hvorfor ser en tilfældig sekvens ikke tilfældig ud?

Fordi ægte tilfældighed er uforudsigelig, ikke jævnt fordelt. Folk forventer, at tilfældigt output er pænt spredt ud, så klumper, gentagelser og korte stimer som 7, 7, 8 opfattes som fejl, selvom de er præcis, hvad tilfældigheden giver. En sekvens, der ser ordentlig ud for et menneske, er som regel den, der ikke var tilfældig.

Kan jeg stole på tilfældighed, der genereres i en browser?

Ja, når den kommer fra Web Crypto API, sådan som den gør her. crypto.getRandomValues er en browserfunktion til kryptografisk sikre tilfældige værdier, som blandt andet kan bruges til at generere kryptografisk materiale, og den henter sin entropi fra styresystemet, ikke fra JavaScript. Math.random() er den, du bør være skeptisk over for, når det betyder noget: den er deterministisk og blev aldrig designet til at være uforudsigelig.

Kan tilfældige tal forudsiges eller påvirkes?

Ikke her. Værdierne kommer fra dit styresystems kryptografisk sikre generator, så tidligere resultater afslører intet om det næste, og trækket sker udelukkende på din egen enhed – der er ingen server at pille ved og ingen forespørgsel for nogen at opsnappe. Vi kan heller ikke påvirke dine resultater, for vi ser dem aldrig.

Er den velegnet til at finde vindere af giveaways eller lodtrækninger?

Ja. Giv hver deltager et nummer, generér et resultat i det interval, og den deltager, der matcher, vinder. Fordi kilden er kryptografisk sikker, og trækket sker udelukkende på din egen enhed, er processen let at forklare og dokumentere, hvis en deltager stiller spørgsmål ved resultatet. Skal du vælge tal til en lotteriseddel, fungerer værktøjet som et redskab til tilfældig udvælgelse, ikke som en forudsigelse: de officielle trækninger står helt for sig selv.

Ændrer det tilfældigheden, hvis jeg genindlæser siden?

Nej, og det er heller ikke nødvendigt. Hvert træk beder allerede styresystemet om friske tilfældige værdier, så resultaterne er uafhængige, uanset om du trykker på »Generér« ti gange eller genindlæser mellem hvert tryk. Der er ingen cyklus at genstarte og ingen tilstand, der bliver forældet – genindlæsning rydder kun de resultater, der vises på skærmen.

Er generatoren gratis, og gemmer I mine tal?

Værktøjet er helt gratis uden krav om oprettelse af en konto. Alle tal genereres lokalt i din browser og forlader aldrig din enhed, så vi kunne ikke gemme eller se dine resultater, selv hvis vi ville.