Gjenerues Numrash të Rastësishëm Falas

Gjeneroni numra të rastësishëm në çdo interval, krijoni lista numrash unikë, ose hidhni zare. Përdor rastësi kriptografikisht të sigurt.

Funksionon jashtë linje sapo ngarkohet

🔒 Çdo numër përdor rastësinë kriptografikisht të sigurt të shfletuesit tënd (crypto.getRandomValues) — vërtet e drejtë, jo Math.random() e parashikueshme. Asgjë nuk dërgohet askund. Megjithatë, mos i përdor këta numra për gjenerim çelësash kriptografikë, tokena sigurie, ose lotari/kumar të rregulluar, të cilat kërkojnë burime rastësie të audituara dhe të certifikuara nga harduer.

Të duhet të zgjedhësh një fitues me emër nga një listë, ose të hedhësh një monedhë? Përdor mjetin Hedhje monedhe, Rrota dhe Zgjedhësi i listës →

Si funksionon

Çdo numër që gjeneron ky mjet vjen nga crypto.getRandomValues — burimi kriptografikisht i sigurt i rastësisë i shfletuesit, i njëjti i përdorur për gjenerimin e çelësave TLS. Një algoritëm mostrimi-refuzimi i shkruar me dorë qëndron sipër për të eliminuar paragjykimin modulo që mundon zbatimet e thjeshta Math.random() % interval, përfshirë intervale më të gjera se 2^32 përmes aritmetikës BigInt.

  1. 1
    Vendos intervalin dhe mënyrën tënde
    Zgjidh mes një numri të vetëm, një liste në masë (deri 1000), ose zare poliedrale (d4 deri d100). Për listat mund gjithashtu të kërkosh vlera unike dhe opsionalisht të rendisësh daljen rritëse.
  2. 2
    crypto.getRandomValues nxjerr entropi të papërpunuar
    Çdo numër nxirret nga një Uint32Array (ose BigUint64Array për intervale më të gjera se 2^32) e mbushur nga RNG-ja kriptografike e shfletuesit — jo Math.random(). Mostrimi i refuzimit pastaj hedh poshtë vlerat që do të shtrembëronin shpërndarjen, kështu që çdo numër i plotë në intervalin tënd ka probabilitet saktësisht të barabartë.
  3. 3
    Mënyra vlerë-unike përdor Fisher-Yates ose gjurmim refuzimi
    Kur mënyra unike është aktive dhe intervali përshtatet në memorie (deri 100,000 vlera), mjeti materializon të gjithë grupin dhe e përzien me Fisher-Yates. Për intervale shumë të mëdha nxjerr në vend të kësaj vlera një nga një, duke kaluar përsëritjet — duke shmangur koston e memories së ndërtimit të një grupi me miliarda hyrje.
  4. 4
    Rezultatet zbresin me reagim të animuar dhe mbeten në historikun e sesionit
    Vlerat përfundimtare animohen në vend (një rrotullim stil-makinë-llotarie për numrat, zare që tumbullohen për mënyrën e zareve) duke përdorur requestAnimationFrame, pastaj shfaqen në një regjistër historie të rrëshqitshëm që mund ta kopjosh në çdo kohë. Asgjë nuk largohet nga shfletuesi yt.

Mjete të ngjashme

Pyetjet e bëra më shpesh