Tilfeldig tallgenerator online

Acrafto Team Matematikk
Oppdatert
Hurtigvalg
Alt kjører i nettleseren din. Ingen tall forlater noen gang enheten din.

Hvordan fungerer den tilfeldige tallgeneratoren?

Generatoren gir deg to kilder til tilfeldighet, og du velger den som passer oppgaven.

Sikker tilfeldighet henter entropi fra operativsystemet ditt gjennom Web Crypto API (crypto.getRandomValues()). Den er uforutsigbar og ugjentakelig — det riktige valget for en reell trekning der ingen skal kunne gjette utfallet på forhånd.

Seedet gjør om en hvilken som helst tekst du skriver, til en starttilstand for en deterministisk generator (xoshiro128**). Samme seed gir alltid samme tall, slik at hvem som helst kan gjenskape trekningen din og bekrefte at du fikk det du sier du fikk.

Begge kjører helt i nettleseren din. Ingen tall når noensinne en server.

Ingen modulo-skjevhet

De fleste enkle generatorer mapper en tilfeldig 32-bits verdi til området ditt med value % range. Når området ikke deler seg jevnt opp i 2³², kommer de laveste tallene opp litt oftere enn resten. Over tusenvis av trekninger er dette målbart.

Denne generatoren bruker i stedet rejection sampling: verdier som ville havnet i den ujevne halen, kastes og trekkes på nytt. Hvert tall i området ditt har nøyaktig samme sjanse. Du kan verifisere det selv med den innebygde uniformitetstesten.

Hva generatoren kan gjøre

Område

  • Minimum og maksimum — et hvilket som helst helt eller desimalt område, negative verdier inkludert
  • Hvor mange tall — fra 1 opptil 1 000 000 i én trekning
  • Ingen repetisjon — hvert tall vises maksimalt én gang, slik som i en ekte trekning
  • Sortering — trekkerekkefølge, stigende eller synkende; sortering påvirker aldri tilfeldigheten
  • Steg — begrens resultatene til multipler av en verdi, slik at bare 0, 5, 10, 15 kommer opp
  • Ekskluder tall — angi verdier som aldri skal trekkes

Modus

  • Kilde til tilfeldighet — sikker (Web Crypto) eller seedet (reproduserbar)
  • Seed — hvilken som helst tekst; samme seed gjenskaper alltid samme trekning
  • Fordeling — uniform, normal (Gauss), eksponentiell, Poisson, triangulær, binomisk
  • Vekter — gi utvalgte tall høyere sjanse, skrevet som number:weight
  • Terningnotasjon3d6+2, d20, 2d20kh1 for fordel, 4d6dl1 for å rulle karakteregenskaper

Utdata

  • Skilletegn — komma, mellomrom, semikolon, tabulator, ny linje, eller hva du selv skriver
  • Tallsystem — desimal, binær, oktal, heksadesimal eller base 36
  • Fyll med nuller — gjør 7 om til 007 for billett- eller ID-numre
  • Prefiks og suffiks — pakk hvert tall inn i fast tekst
  • Mal{n} er tallet, {i} posisjonen, så user{n} blir user42
  • Kopier som — ren tekst, CSV, JSON eller en Markdown-tabell

Statistikk

Hver trekning oppsummeres direkte: sum, gjennomsnitt, median, laveste, høyeste, standardavvik, samt hvor mange resultater som er partall, oddetall eller primtall. Et histogram viser formen på fordelingen, og en kji-kvadrat-test forteller deg om resultatene faktisk samsvarer med en uniform fordeling.

Historikk

De siste 50 trekningene lagres i nettleseren din, sammen med innstillingene som produserte dem — ett klikk gjenoppretter hvilken som helst av dem. Konfigurasjoner du bruker ofte, kan lagres som navngitte forhåndsinnstillinger, og hele samlingen eksporteres til en JSON-fil du kan importere på en annen maskin. Ingenting lagres noe annet sted enn i denne nettleseren.

Tastatur

Trykk mellomrom eller R for å trekke på nytt uten å ta i musen.

Raske forhåndsinnstillinger

ForhåndsinnstillingOmrådeAntallBruk
🎲 Terning1–61Brettspill, beslutninger
🪙 Mynt0–11Kron eller mynt
🎰 Lotteri1–496Unikt, sortert, som en ekte trekning
💯 1–1001–1001Prosenter, A/B-fordeling
🔢 PIN0–94Fire sifre, repetisjon tillatt

Reproduserbare trekninger

Seedet modus finnes for de gangene «stol på meg, det var tilfeldig» ikke er nok.

Velg en seed alle kan bli enige om på forhånd — en dato, en emneknagg, sluttkursen på noe offentlig — og annonser den før du trekker. Da kan hvem som helst skrive inn samme seed med samme innstillinger og få identisk resultat. Du har ikke bevist at tallene var uforutsigbare; du har bevist at du ikke trakk på nytt til du likte svaret.

Det er også slik du gjør tilfeldighet gjentakbar i arbeid som må kunne kontrolleres: en utvalgsplan en kollega kan kjøre på nytt, et sett testdata som forblir stabilt gjennom en testpakke, en klasseromsøvelse der hver elev får de samme «tilfeldige» dataene.

Å velge en fordeling

Uniform gir hvert tall i området samme sjanse. Det er det folk vanligvis mener med tilfeldig, og det er standardvalget.

De andre samler resultatene rundt en verdi, som er hva virkelige størrelser har en tendens til å gjøre:

  • Normal (Gauss) — høyder, målefeil, testresultater. Angi et gjennomsnitt og et standardavvik.
  • Eksponentiell — ventetider mellom uavhengige hendelser.
  • Poisson — antall hendelser i et fast intervall: ankomster per time, defekter per parti.
  • Triangulær — når du vet minimum, maksimum og mest sannsynlige verdi, men ingenting annet. Vanlig i prosjektestimater.
  • Binomisk — antall suksesser blant et fast antall forsøk med en fast sannsynlighet.

Hver fordeling klippes til området du har satt, slik at en lang Gauss-hale ikke kan slippe unna minimum og maksimum.

Hvor tilfeldige tall brukes

Spill og underholdning

  • Brettspill — terningkast, trekkerekkefølge
  • Bordrollespill4d6dl1 for karakteregenskaper, 2d20kh1 for fordel
  • Bortgivning av premier — trekke en vinner, med en seed slik at deltakerne kan verifisere det
  • Quizer — tilfeldig spørsmålsrekkefølge

Statistikk og vitenskap

  • Utvalg — trekke et utvalg fra en populasjon uten repetisjon
  • A/B-testing — tildele deltakere til grupper
  • Monte Carlo-simulering — estimere sannsynlighet ved repetisjon
  • Bootstrapping — resampling for å estimere usikkerhet

Utvikling

  • Testdata — en million verdier, generert i bakgrunnen slik at siden holder seg responsiv
  • Fixtures — seedet, slik at en feilende test feiler på samme måte to ganger
  • Tilfeldige ID-er — med utfylling, prefikser eller en mal
  • Lasttesting — malbaserte identifikatorer som user{n}@example.com

Ekte vs. pseudo-tilfeldige tall

Math.random()crypto.getRandomValues()Seedet (xoshiro128**)
TypePseudo-tilfeldigKryptografisk sikkerPseudo-tilfeldig, deterministisk
EntropikildeMotorvalgt seedSystemets CSPRNGDin seed-tekst
Forutsigbar?PotensieltNeiJa, med hensikt
Gjentakbar?NeiNeiAlltid
Egnet for sikkerhetNeiJaNei
Egnet for statistikkAvhengerJaJa
Egnet for verifiserbare trekningerNeiNeiJa

Math.random() brukes ikke noe sted i dette verktøyet.

Trekninger uten repetisjon

Med Ingen repetisjon aktivert vises hvert tall i området maksimalt én gang. Ideelt for:

  • Bortgivning av premier — ingen kan vinne to ganger
  • Permutasjoner — stokke et sett med elementer
  • Bingo — trekke tall som forblir trukket
  • Lotteri — seks distinkte tall fra 1 til 49

Trekningen bruker en partiell Fisher–Yates-shuffle, slik at det å be om 6 tall av en million er like raskt som å be om 6 av 49 — den løper aldri i håp om å unngå en kollisjon. Hvis du ber om flere unike tall enn området kan levere, sier generatoren fra i stedet for å henge.

Eksportere resultater

Kopier tallene som ren tekst med det skilletegnet du vil, som CSV for et regneark, som JSON for kode, eller som en Markdown-tabell for dokumentasjon. Svært store trekninger holdes i sin helhet i minnet og kopieres i sin helhet, selv om bare de første par tusen trekkes på skjermen.

Generere tilfeldige tall i din egen kode

JavaScript / TypeScript

// Kryptografisk sikkert heltall i [min, max], uten modulo-skjevhet.
// Den naive `value % range` favoriserer lave tall når området ikke
// deler 2**32 jevnt - så vi forkaster verdier i den ujevne halen.
function randomInt(min, max) {
  const range = max - min + 1;
  const limit = Math.floor(0x100000000 / range) * range;
  const arr = new Uint32Array(1);
  let value;
  do {
    crypto.getRandomValues(arr);
    value = arr[0];
  } while (value >= limit);
  return min + (value % range);
}

Python

import random
import secrets

# Kryptografisk sikkert, ingen modulo-skjevhet
n = secrets.randbelow(max - min + 1) + min

# Reproduserbart: samme seed gir alltid samme sekvens
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Uten repetisjon
sample = random.sample(range(min, max + 1), count)

PHP

// Kryptografisk sikkert (PHP 7+), ingen modulo-skjevhet
$n = random_int($min, $max);

// Reproduserbart
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Ofte stilte spørsmål (FAQ)

Er resultatet virkelig tilfeldig? I sikker modus, ja. Det kommer fra crypto.getRandomValues(), en kryptografisk sikker generator matet av operativsystemets entropipool. Resultatene er uniformt fordelt og uforutsigbare. Seedet modus er bevisst det motsatte: den er reproduserbar, og det er hele poenget.
Hvor mange tall kan jeg generere samtidig? Opptil 1 000 000. Trekninger over 50 000 beregnes i en bakgrunnsarbeider slik at siden holder seg responsiv, og skjermen viser de første 2 000 med et antall for resten — kopiering gir deg fortsatt alt.
Kan jeg generere negative tall? Ja. Sett et negativt minimum. Hele spekteret av JavaScript-tall fungerer, inkludert negative områder i begge ender.
Påvirker sortering tilfeldigheten? Nei. Tallene trekkes først og sorteres etterpå. Sortering endrer bare rekkefølgen du ser dem i.
Vil samme seed gi samme tall i morgen? Ja, og på en hvilken som helst annen enhet eller nettleser. Den seedede generatoren er fullstendig deterministisk og avhenger av ingenting annet enn din seed og dine innstillinger.
Hva forteller uniformitetstesten meg? Den kjører en kji-kvadrat-test som sammenligner hvor ofte hvert tall faktisk kom opp, mot hvor ofte det burde ha gjort det. Hvis statistikken holder seg under kritisk verdi, er resultatene i samsvar med en uniform fordeling. Den trenger et rimelig smalt område og nok trekninger — minst fem per mulig verdi — for å si noe meningsfullt.
Hvordan fungerer vekter? Skriv dem som number:weight-par, for eksempel 1:5, 2:1, 3:1. Her er 1 fem ganger så sannsynlig som 2 eller 3. Tall du ikke lister opp, får vekt null og trekkes aldri.
Hvilken terningnotasjon støttes? 3d6 kaster tre sekssidede terninger. Legg til en modifikator med 3d6+2. Behold eller forkast terninger med kh, kl, dh, dl — så 2d20kh1 beholder den høyeste av to d20-er (fordel), og 4d6dl1 forkaster den laveste av fire d6-er.
Lagres historikken min noe sted? Kun i denne nettleseren, i lokal lagring. Den når aldri en server, synkroniseres aldri til en annen enhet, og forsvinner hvis du sletter nettstedsdataene dine. Eksporter den til JSON hvis du vil beholde eller flytte den.

Jeg ville satt pris på om du kunne dele disse sidene med venner, bokmerk dem eller lenk til dem. Takk! 🙏