Tilfeldig tallgenerator

Generer et tilfeldig tall, en liste eller flere tallsett i et hvilket som helst område – alt sammen laget direkte i nettleseren din med kryptografisk sikker tilfeldighet, aldri på en server.

Trykk på Generer
Alternativer

Trenger du en rask og rettferdig måte å få et tilfeldig tall på? Denne gratis, tilfeldige tallgeneratoren på nett trekker ett tall – eller en hel liste med tall – innenfor et hvilket som helst område du selv velger, fra et enkelt område fra 1 til 10 til områder som spenner over milliarder. Still inn laveste og høyeste verdi i «Min» og «Maks», velg hvor mange tall du trenger med «Antall», og trykk på «Generer». Begge grensene er inkludert, så et område fra 1 til 10 kan gi både 1 og 10.

Hvert resultat lages direkte i nettleseren din med Web Crypto API (crypto.getRandomValues) — som gir kryptografisk sterke tilfeldige verdier fra den underliggende systemtilfeldigheten i nettleseren din. Ingenting sendes til en server, ingenting logges, og vi ser aldri tallene dine. Genereringen er øyeblikkelig, privat, og fortsetter å fungere på en treg tilkobling etter at siden er lastet inn.

Alternativene er laget for de situasjonene der folk faktisk trenger tilfeldige tall. Slå på «Ingen duplikater» så ingen tall vises to ganger – akkurat det du trenger til utlodninger, loddtrekninger eller inndeling av folk i grupper uten gjentakelser. Trenger du tjue vinnere blant 500 deltakere? Still «Min» til 1 og «Maks» til 500, slå på «Ingen duplikater», still «Antall» til 20, og trykk på «Generer». «Sorteringsrekkefølge» ordner resultatet stigende eller synkende, og én knapp kopierer alle resultatene. Når du bytter «Utdataformat» fra «Linjeskift» til «Mellomromseparert» eller «Kommaseparert», dukker «Antall sett» opp: flere uavhengige trekninger på én gang – for eksempel tjue sett med 3 tall for tjue loddtrekningsrunder – der «Tillat duplikater på tvers av sett» avgjør om samme tall kan dukke opp i mer enn ett av dem.

Hvordan genereres tilfeldigheten egentlig? Nettleseren din leverer kryptografisk sterke tilfeldige verdier gjennom Web Crypto API i stedet for gjennom en JavaScript-PRNG som Math.random(). Når du trykker på «Generer», ber siden om tilfeldige verdier med crypto.getRandomValues og bruker dem til å lage tall innenfor området du valgte. Den underliggende kilden til tilfeldighet kommer fra nettleseren og operativsystemet, så siden trenger ikke å opprettholde en egen seed-verdi eller pseudotilfeldig sekvens.

Å omforme en rå verdi til området ditt er nettopp der generatorer stille og rolig går galt, og det fortjener sitt eget avsnitt. Å ta verdien modulo størrelsen på området er den opplagte metoden – og den skjeve: med mindre området går jevnt opp i 2^32, kommer de laveste tallene litt oftere enn resten. Denne skjevheten kalles modulo bias, og den er målbar, ikke bare teoretisk. Denne generatoren forkaster i stedet enhver verdi utover det største multiplumet av området som går jevnt opp, og trekker på nytt – en teknikk som kalles rejection sampling. Det koster noen ekstra trekninger, men gir til gjengjeld en eksakt garanti: hvert tall mellom «Min» og «Maks» har nøyaktig samme sannsynlighet, ikke bare nesten samme.

Hva gjør et tall virkelig tilfeldig? Et tall er tilfeldig nok når tidligere resultater ikke forteller noe om det neste – og i praksis finnes det tre nivåer av dette. En vanlig pseudotilfeldig funksjon som Math.random() kjører en deterministisk algoritme: den som kjenner den interne tilstanden kan gjenskape hele sekvensen, noe som er greit for å stokke et lysbildeshow, men uegnet for alt der resultatet ikke må kunne forutsies. En kryptografisk sikker tilfeldighetsgenerator (CSPRNG) – nivået dette verktøyet bruker – er også en algoritme, men den er designet for å levere uforutsigbare verdier fra en sikker kilde til systemtilfeldighet, og bygget slik at det å følge med på resultatet ikke avslører noe om hva som kommer neste gang. Fysisk tilfeldighet, fra kilder som atmosfærisk støy eller radioaktivt henfall, er den eneste av de tre som ikke kommer fra en algoritme, selv om den praktiske forskjellen forsvinner når det gjelder å trekke et tall fra et område. Det er nettopp derfor nettlesere tilbyr et eget krypto-API i stedet for å forbedre Math.random(): de to løser ulike problemer, og bare det ene er trygt når resultatet betyr noe for noen.

En tilfeldig sekvens skal ikke se tilfeldig ut for mennesker. Trekk ti tall mellom 1 og 10, og du vil jevnlig se en gjentakelse, et nesten-par som 7, 7, 8, eller en kort rekke som havner høyt hele veien – og hvert eneste av dette er helt normalt. Ekte tilfeldighet er uforutsigbar, ikke jevnt fordelt: hver trekning er uavhengig, tidligere tall har absolutt ingen innvirkning på de neste, og aldri blir noe tall mer «forfalt» enn et annet. Instinktet som hevder noe annet, er gamblerens feilslutning, og det er det samme instinktet som gjør folk til dårlige tallgeneratorer selv – bedt om å finne på en tilfeldig sekvens unngår vi gjentakelser og sprer verdiene langt jevnere enn tilfeldigheten noen gang gjør. Et resultat som ser mistenkelig ryddig ut, er et menneskes fingeravtrykk; ekte tilfeldighet skaper klumper.

Hvorfor velge denne tilfeldige tallgeneratoren?

Tilfeldige tall dukker opp på flere steder enn de fleste tror. Lærere velger elever uten å favorisere noen. Streamere og markedsførere trekker vinnere av giveaways og loddtrekninger foran et publikum som må kunne stole på resultatet. Spillere erstatter en mistet terning eller avgjør hvem som starter, og turneringer trekker startrekkefølgen. Forskere velger et tilfeldig utvalg slik at funnene deres kan generaliseres utover dem som deltok. Utviklere genererer testdata, initialiserer simuleringer og velger identifikatorer under QA. Den felles tråden er en tilfeldig utvelgelsesprosess som kan forklares i ettertid: fordi trekningen bruker kryptografisk tilfeldighet og skjer helt på enheten din, kan du vise hvordan resultatet ble til hvis noen stiller spørsmål ved det.

Denne generatoren har noen få ærlige begrensninger som er verdt å kjenne til. «Ingen duplikater» kan ikke trekke flere tall enn området inneholder: tjue unike verdier mellom 1 og 10 finnes rett og slett ikke. Trekninger er uavhengige, og tidligere resultater påvirker ikke de neste, så det å laste siden på nytt nullstiller ingen syklus – det finnes ingen syklus å være i. Og selv om tallene er kryptografisk sterke, er en trekning her et rettferdig utvalg og ikke en spådom: offisielle lotteritrekninger bruker sitt eget fysiske eller sertifiserte utstyr, og det som beregnes i nettleseren din har ingen forbindelse til dem. Innenfor disse grensene er garantien desto sterkere: hvert tall i området ditt har nøyaktig samme sjanse, hver eneste trekning.

FAQ

Er tilfeldigheten kryptografisk sikker?

Ja. Den bruker nettleserens Web Crypto API (crypto.getRandomValues), som henter tilfeldighet fra operativsystemets kryptografisk sikre kilde. I motsetning til enkle pseudotilfeldige funksjoner er resultatet designet for å være uforutsigbart i praksis, og rejection sampling holder hvert tall i området like sannsynlig i stedet for å favorisere de laveste verdiene.

Hvordan genererer jeg et tilfeldig tall i et bestemt område?

Skriv inn den minst mulige verdien i feltet «Min» og den høyeste i feltet «Maks», og trykk deretter på «Generer». Begge grensene er inkludert i resultatet, så et område fra 1 til 10 kan gi både 1 og 10.

Kan jeg generere flere tilfeldige tall samtidig?

Ja. Still feltet «Antall» til antallet du trenger (opptil 1000), så lager generatoren hele listen med ett klikk. Deretter kan du kopiere alle resultatene til utklippstavlen med kopieringsknappen, eller lagre dem til en fil.

Kan jeg generere flere tallsett samtidig?

Ja. Bytt «Utdataformat» fra «Linjeskift» til «Mellomromseparert» eller «Kommaseparert» for å få frem feltet «Antall sett». Still det til hvor mange uavhengige trekninger du trenger – for eksempel tjue sett med 3 tall for tjue loddtrekningsrunder – og velg om samme tall kan forekomme i flere sett.

Kan jeg sortere de genererte tallene?

Ja. Bruk «Sorteringsrekkefølge» til å ordne hver liste stigende eller synkende, eller la den stå på «Ingen» for å beholde tallene i den rekkefølgen de ble trukket.

Hvordan unngår jeg duplikate tall?

Slå på bryteren «Ingen duplikater». Når den er på, er hvert genererte tall i listen forskjellig – ideelt for utlodninger, premietrekninger eller inndeling av folk i grupper. Merk at antallet ikke kan overstige størrelsen på området: du kan ikke trekke 20 unike tall mellom 1 og 10.

Hvorfor kommer de samme tallene igjen og igjen?

Fordi uavhengige trekninger gjerne gjentar seg, og det er nettopp slik tilfeldighet ser ut. Hver trekning ser fullstendig bort fra alle tidligere trekninger, så i et område fra 1 til 10 har samme tall en sjanse på 1 av 10 for å komme to ganger på rad, hver eneste gang – det er helt normalt, ikke en feil. Trenger du en liste uten gjentakelser, slår du på «Ingen duplikater»; det begrenser trekningen med hensikt, og retter ikke opp noen feil.

Hvorfor ser ikke en tilfeldig sekvens tilfeldig ut?

Fordi ekte tilfeldighet er uforutsigbar, ikke jevnt fordelt. Folk forventer at tilfeldige resultater skal spres pent utover, så klumper, gjentakelser og korte rekker som 7, 7, 8 oppfattes som feil, selv om de er nøyaktig det tilfeldigheten gir. En sekvens som ser ryddig ut for et menneske, har som regel ikke vært tilfeldig.

Kan jeg stole på tilfeldighet som genereres i en nettleser?

Ja, når den kommer fra Web Crypto API, slik den gjør her. crypto.getRandomValues gir kryptografisk sterke tilfeldige verdier fra nettleserens underliggende systemtilfeldighet, i stedet for en JavaScript-PRNG som Math.random(). Det er nettopp Math.random() du bør mistro når noe betyr noe: den er deterministisk og ble aldri designet for å være uforutsigbar.

Kan tilfeldige tall forutsies eller påvirkes?

Ikke her. Verdiene kommer fra operativsystemets kryptografisk sikre generator, så tidligere resultater avslører ingenting om det neste, og trekningen skjer helt på enheten din – det finnes ingen server å tukle med og ingen forespørsel for noen å avskjære. Vi kan heller ikke påvirke resultatene dine, for vi ser dem aldri.

Passer den til å trekke vinnere av giveaways eller loddtrekninger?

Ja. Gi hver deltaker et nummer, generer et resultat i det området, og deltakeren som treffer, vinner. Fordi kilden er kryptografisk sikker og trekningen skjer helt på enheten din, er prosessen lett å forklare og dokumentere hvis en deltaker stiller spørsmål ved resultatet. Skal du velge tall til en lotteriseddel, fungerer verktøyet som et verktøy for tilfeldig utvelgelse, ikke som en spådom: offisielle lotteritrekninger er helt atskilt fra det.

Endrer det tilfeldigheten om jeg laster siden på nytt?

Nei, og det er heller ikke nødvendig. Hver trekning ber allerede operativsystemet om ferske tilfeldige verdier, så resultatene er uavhengige enten du trykker «Generer» ti ganger eller laster siden på nytt mellom hvert trykk. Det finnes ingen syklus å starte på nytt og ingen tilstand som blir foreldet – å laste siden på nytt fjerner bare resultatene som vises på skjermen.

Er generatoren gratis, og lagrer dere tallene mine?

Verktøyet er helt gratis uten registrering. Alle tall genereres lokalt i nettleseren din og forlater aldri enheten din, så vi kunne verken lagre eller se resultatene dine selv om vi ønsket det.