Ruka hadi maudhui makuu

Jenereta ya Nambari Nasibu bila malipo

Tengeneza nambari nasibu katika mbalimbali wowote, unda orodha za nambari za kipekee, au tupa kete. Inatumia nasibu salama kwa kriptografia.

Inafanya kazi bila mtandao mara ikishapakia

πŸ”’ Kila nambari inatumia nasibu salama ya kriptografia ya kivinjari chako (crypto.getRandomValues) β€” ya haki kweli kweli, si Math.random() inayoweza kutabiriwa. Hakuna kitu kinachotumwa popote. Hata hivyo, usitumie nambari hizi kwa uzalishaji wa ufunguo wa kriptografia, tokeni za usalama, au programu za bahati nasibu/kamari zilizodhibitiwa, ambazo zinahitaji vyanzo vya nasibu vilivyokaguliwa vya vifaa.

Unahitaji kuchagua mshindi kwa jina kutoka orodha, au kurusha sarafu? Tumia zana ya Kurusha Sarafu, Gurudumu la Kuzungusha na Kichagua Orodha β†’

Matumizi ya kawaida

  • Tunza Namba za Bahati NasibuChagua namba za bahati nasibu kwa Powerball Mega Millions EuroMillions na uchumi mwingine.
  • Chagua Mshindi wa Bahati kwa GiveawaysChagua kwa haki mshindi wa bahati kutoka kwa orodha ya kuingiza iliyohesabiwa kwa mashindano na kutoa.
  • Geuza Dice kwa Tabletop GamesGeuza riwaya yoyote ya dice - d4 d6 d8 d10 d12 d20 d100 - kwa D&D na tabletop RPGs.
  • Sampling ya Bahati kwa ResearchTunza sampuli za bahati nasibu weka ID za bahati nasibu au chagua mahali pa bahati nasibu kutoka kwa takwimu.
  • Tunza Data Data Random NumbersUnda orodha kubwa za namba za bahati nasibu kwa kufanya algo kukamatia kumimina database na stress-testing ya mifumo.

Jinsi Inavyofanya Kazi

Kila namba kifaa hiki kinachozalisha inatoka crypto.getRandomValues β€” chanzo cha bahati nasibu chenye usalama wa kriptografia cha kivinjari, kile kile kinachotumika kwa uzalishaji wa funguo za TLS. Alkoritimu ya sampuli-ya-kukataa iliyoandikwa mwenyewe iko juu yake kuondoa upendeleo wa moduli unaosumbua utekelezaji rahisi wa Math.random() % wigo, ikiwa ni pamoja na wigo mpana zaidi ya 2^32 kupitia hesabu ya BigInt.

  1. 1
    Weka wigo na hali yako
    Chagua kati ya namba moja, orodha ya wingi (hadi 1000), au dadu za polihedra (d4 hadi d100). Kwa orodha unaweza pia kuhitaji thamani za kipekee na kwa hiari kupanga matokeo kwa kupanda.
  2. 2
    crypto.getRandomValues inavuta entropia ghafi
    Kila namba inavutwa kutoka Uint32Array (au BigUint64Array kwa wigo mpana zaidi ya 2^32) iliyojazwa na RNG ya kriptografia ya kivinjari β€” si Math.random(). Sampuli ya kukataa kisha inaondoa thamani ambazo zingepotosha mgawanyo, kwa hiyo kila nambari kamili kwenye wigo wako ina uwezekano sawa kabisa.
  3. 3
    Hali ya thamani-za-kipekee inatumia Fisher-Yates au ufuatiliaji wa kukataa
    Hali ya kipekee ikiwashwa na wigo unafaa kwenye kumbukumbu (hadi thamani 100,000), kifaa kinaunda hazina kamili na kuichanganya na Fisher-Yates. Kwa wigo mkubwa sana kinavuta badala yake thamani moja kwa wakati, kikiruka marudio β€” kikiepuka gharama ya kumbukumbu ya kujenga safu ya viingilio-bilioni.
  4. 4
    Matokeo yanaangukia mahali pake na maoni yaliyohuishwa na kubaki kwenye historia ya kipindi
    Thamani za mwisho zinahuisha mahali pake (kuzunguka kwa mtindo wa slot-machine kwa namba, dadu zinazoviringika kwa hali ya dadu) kwa kutumia requestAnimationFrame, kisha kuonekana kwenye kumbukumbu ya historia inayoweza kusogezwa unayoweza kunakili wakati wowote. Hakuna kinachoondoka kwenye kivinjari chako.

Zana Zinazohusiana

Maswali Yanayoulizwa Mara Kwa Mara