Preskoči na glavni sadržaj

Generator slučajnih brojeva — besplatno

Generirajte slučajne brojeve u bilo kojem rasponu, kreirajte jedinstvene popise brojeva ili bacajte kockice. Koristi kriptografski sigurnu nasumičnost.

Radi offline nakon učitavanja

🔒 Svaki broj koristi kriptografski sigurnu slučajnost preglednika (crypto.getRandomValues) — istinski pravičan, ne predvidljiv Math.random(). Ništa se ne šalje nikamo. Ipak, nemojte koristiti ove brojeve za generiranje kriptografskih ključeva, sigurnosnih tokena ili reguliranih lutrija/klađenja, koji zahtijevaju auditirana, hardverski certificirana izvora slučajnosti.

Trebate odabrati pobjednika po imenu s popisa ili baciti novčić? Upotrijebite alat Bacanje novčića, Kolo sreće i Odabir s popisa →

Uobičajene namjene

  • Generirajte brojeve lutrijeOdaberite nasumične brojeve lutrije za Powerball, Mega Millions, EuroMillions i druge izvlačenja.
  • Odaberite nasumičnog dobitnika za darivanjaPošteno odaberite nasumičnog dobitnika iz brojane liste unosa za natjecanja i darivanja.
  • Bacajte kocke za stoljne igreBacajte bilo koju kombinaciju kocki — d4, d6, d8, d10, d12, d20, d100 — za D&D i stoljne RPG-e.
  • Nasumično uzorkovanje za istraživanjeGenerirajte nasumične uzorke, dodijelite nasumične ID-eve ili odaberite nasumičnu podskupinu iz brojanog skupa podataka.
  • Generirajte nasumične brojeve za testne podatkeKreirajte velike popise nasumičnih brojeva za testiranje algoritama, popunjavanje baza podataka i stresno testiranje sustava.

Kako funkcionira

Svaki broj koji ovaj alat generira dolazi iz crypto.getRandomValues — kriptografski sigurnog slučajnog izvora preglednika, istog koji se koristi za generiranje TLS ključeva. Ručno napisan algoritam uzorkovanja s odbacivanjem sjedi na vrhu kako bi eliminirao modulo pristranost koja muči jednostavne implementacije Math.random() % raspon, uključujući raspone šire od 2^32 putem BigInt aritmetike.

  1. 1
    Postavite svoj raspon i način rada
    Odaberite između jednog broja, skupnog popisa (do 1000) ili poliedarskih kockica (d4 do d100). Za popise također možete zahtijevati jedinstvene vrijednosti i opcionalno sortirati izlaz uzlazno.
  2. 2
    crypto.getRandomValues izvlači sirovu entropiju
    Svaki broj izvlači se iz Uint32Array (ili BigUint64Array za raspone šire od 2^32) popunjenog kriptografskim RNG-om preglednika — ne Math.random(). Uzorkovanje odbacivanja zatim odbacuje vrijednosti koje bi iskrivile distribuciju, tako da svaki cijeli broj u vašem rasponu ima potpuno jednaku vjerojatnost.
  3. 3
    Način jedinstvenih vrijednosti koristi Fisher-Yates ili praćenje odbacivanja
    Kada je uključen jedinstveni način i raspon stane u memoriju (do 100.000 vrijednosti), alat materijalizira cijeli skup i miješa ga Fisher-Yates algoritmom. Za vrlo velike raspone umjesto toga izvlači vrijednosti jednu po jednu, preskačući ponavljanja — izbjegavajući trošak memorije izgradnje niza od milijardi unosa.
  4. 4
    Rezultati se pojavljuju s animiranom povratnom informacijom i ostaju u povijesti sesije
    Konačne vrijednosti animiraju se na mjesto (slot-mašina kotrljanje za brojeve, kotrljajuće kockice za način kockica) koristeći requestAnimationFrame, zatim se pojavljuju u prijeklopivom dnevniku povijesti koji možete kopirati u bilo kojem trenutku. Ništa ne napušta vaš preglednik.

Srodni alati

Često postavljana pitanja