Preskoči na glavno vsebino

Generator naključnih številk — brezplačno

Ustvarite naključne številke v katerem koli obsegu, ustvarite edinstvene sezname številk ali mečite kocke. Uporablja kriptografsko varno naključnost.

Deluje brez povezave po nalaganju

🔒 Vsako število uporablja kriptografsko varno naključnost brskalnika (crypto.getRandomValues) — resnično pošteno, ne predvidljivo Math.random(). Nič se ne pošilja nikamor. Kljub temu teh števil ne uporabljajte za generiranje kriptografskih ključev, varnostnih žetonov ali reguliranih loterijskih/hazardnih aplikacij, ki zahtevajo revidirane vire naključnosti s strojno certifikacijo.

Želite izbrati zmagovalca po imenu s seznama ali vreči kovanec? Uporabite orodje Met kovanca, Kolo sreče in Izbiralnik s seznama →

Pogosta področja uporabe

  • Ustvarite loterijske številkeIzberite naključne loterijske številke za Powerball, Mega Millions, EuroMillions in druge žrebanja.
  • Izberite naključnega zmagovalca za podarjanjaPošteno izberite naključnega zmagovalca iz oštevilčenega seznama vnosov za natečaje in podarjanja.
  • Vrzite kocke za namizne igreVrzite katero koli kombinacijo kock — d4, d6, d8, d10, d12, d20, d100 — za D&D in namizne RPG igre.
  • Naključno vzorčenje za raziskaveUstvarite naključne vzorce, dodelite naključne ID-je ali izberite naključno podmnožico iz oštevilčenega niza podatkov.
  • Ustvarite naključne številke testnih podatkovUstvarite velike sezname naključnih števil za testiranje algoritmov, polnjenje baz podatkov in preizkušanje sistema pod obremenitvijo.

Kako deluje

Vsako število, ki ga ustvari to orodje, izhaja iz crypto.getRandomValues — kriptografsko varnega naključnega vira brskalnika, istega, ki se uporablja za ustvarjanje ključev TLS. Ročno napisan algoritem vzorčenja z zavrnitvijo je na vrhu, da odpravi modulo pristranskost, ki muči preproste implementacije Math.random() % razpon, vključno z razponi, širšimi od 2^32 prek aritmetike BigInt.

  1. 1
    Nastavite razpon in način
    Izberite med posameznim številom, seznamom po serijah (do 1000) ali mnogokotnimi kockami (d4 do d100). Za sezname lahko tudi zahtevate edinstvene vrednosti in izbirno razvrstite izpis naraščajoče.
  2. 2
    crypto.getRandomValues izbere surovo entropijo
    Vsako število se izbere iz Uint32Array (ali BigUint64Array za razpone, širše od 2^32), napolnjenega s kriptografskim generatorjem naključnih števil brskalnika — ne Math.random(). Vzorčenje z zavrnitvijo nato zavrže vrednosti, ki bi izkrivile porazdelitev, tako da ima vsako celo število v vašem razponu natanko enako verjetnost.
  3. 3
    Način edinstvenih vrednosti uporablja Fisher-Yates ali sledenje zavrnitvam
    Ko je edinstven način vklopljen in se razpon prilega v pomnilnik (do 100.000 vrednosti), orodje zmaterializira celoten bazen in ga premeša s Fisher-Yates. Za zelo velike razpone namesto tega izbira vrednosti eno za drugo, preskakuje ponovitve — s čimer se izogne stroškom pomnilnika za sestavljanje polja z milijardami vnosov.
  4. 4
    Rezultati pristanejo z animirano povratno informacijo in ostanejo v zgodovini seje
    Končne vrednosti se animirajo na svoje mesto (vrtenje kot pri igralnem avtomatu za številke, kotaleče se kocke za način kocke) z uporabo requestAnimationFrame, nato se pojavijo v pomikajočem se dnevniku zgodovine, ki ga lahko kadar koli kopirate. Nič ne zapusti vašega brskalnika.

Sorodna orodja

Pogosto zastavljena vprašanja