Online véletlenszám-generátor

Acrafto Team Matematika
Frissítve
Gyors sablonok
Minden a böngészőjében fut. Egyetlen szám sem hagyja el az eszközét.

Hogyan működik a véletlenszám-generátor?

A generátor két véletlenforrást kínál, Ön dönti el, melyik illik a feladathoz.

A biztonságos véletlen entrópiát merít az operációs rendszeréből a Web Crypto API-n (crypto.getRandomValues()) keresztül. Kiszámíthatatlan és megismételhetetlen – ez a helyes választás egy valódi sorsoláshoz, ahol senki sem tippelheti meg előre az eredményt.

A maggal vezérelt (seeded) mód bármilyen beírt szöveget kiinduló állapottá alakít egy determinisztikus generátor számára (xoshiro128**). Ugyanaz a mag mindig ugyanazokat a számokat adja, így bárki visszajátszhatja a sorsolást, és megerősítheti, hogy tényleg azt kapta, amit állít.

Mindkettő teljes egészében a böngészőjében fut. Egyetlen szám sem jut el a szerverre.

Nincs modulo torzítás

A legtöbb egyszerű generátor egy véletlen 32 bites értéket a érték % tartomány képlettel vetít le a kívánt tartományra. Ha a tartomány nem osztja el egyenletesen a 2³²-t, a legkisebb számok kicsit gyakrabban jönnek ki a többinél. Több ezer sorsolás után ez már mérhető.

Ez a generátor helyette elutasításos mintavételt (rejection sampling) használ: azokat az értékeket, amelyek az egyenlőtlen maradékba esnének, eldobja és újra húz. A tartomány minden száma pontosan ugyanakkora eséllyel jön ki. Ezt a beépített egyenletességi teszttel Ön is ellenőrizheti.

Mire képes a generátor

Tartomány

  • Minimum és maximum – bármilyen egész vagy tizedes tartomány, negatív értékekkel együtt
  • Mennyiség – 1-től egészen 1 000 000-ig egy húzásban
  • Ismétlés nélkül – minden szám legfeljebb egyszer szerepel, ahogy egy valódi sorsolásnál
  • Rendezés – húzási sorrend, növekvő vagy csökkenő; a rendezés sosem érinti a véletlenszerűséget
  • Lépésköz – az eredmények egy érték többszöröseire korlátozása, így csak 0, 5, 10, 15 jöhet ki
  • Kizárt számok – olyan értékek listázása, amelyek soha nem húzhatók

Mód

  • Véletlenforrás – biztonságos (Web Crypto) vagy maggal vezérelt (visszajátszható)
  • Mag – bármilyen szöveg; ugyanaz a mag mindig ugyanazt a húzást játssza vissza
  • Eloszlás – egyenletes, normális (Gauss), exponenciális, Poisson, háromszög, binomiális
  • Súlyok – a kiválasztott számoknak nagyobb esélyt ad, szám:súly formában megadva
  • Dobókocka-jelölés3d6+2, d20, 2d20kh1 az előny (advantage) esetén, 4d6dl1 a képességértékek dobásához

Kimenet

  • Elválasztó – vessző, szóköz, pontosvessző, tabulátor, új sor, vagy bármi, amit beír
  • Számrendszer – tízes, kettes, nyolcas, tizenhatos vagy 36-os alapú
  • Nullákkal feltöltés – a 7-ből 007 lesz jegy- vagy azonosítószámokhoz
  • Előtag és utótag – minden számot fix szöveg vesz körül
  • Sablon{n} a szám, {i} a pozíciója, így a user{n} user42-vé válik
  • Másolás mint – egyszerű szöveg, CSV, JSON vagy Markdown táblázat

Statisztika

Minden húzás élőben összegzésre kerül: összeg, átlag, medián, legkisebb, legnagyobb, szórás, valamint hogy hány eredmény páros, páratlan vagy prím. Egy hisztogram mutatja az eloszlás alakját, egy khi-négyzet teszt pedig megmondja, hogy az eredmények valóban egyenletes eloszlást követnek-e.

Előzmények

Az utolsó 50 húzás megmarad a böngészőjében, a hozzájuk tartozó beállításokkal együtt – egy kattintással bármelyik visszaállítható. A gyakran használt konfigurációk névvel ellátott előbeállításként menthetők, és az egész készlet exportálható egy JSON fájlba, amelyet másik gépen importálhat. Semmi sem tárolódik máshol, csak ebben a böngészőben.

Billentyűzet

Nyomja meg a Space vagy R billentyűt az újrahúzáshoz, egér nélkül.

Gyors előbeállítások

ElőbeállításTartományMennyiségHasználat
🎲 Kocka1–61Társasjátékok, döntéshozatal
🪙 Érme0–11Fej vagy írás
🎰 Lottó1–496Egyedi, rendezett, mint egy valódi sorsolás
💯 1–1001–1001Százalékok, A/B felosztás
🔢 PIN0–94Négy számjegy, ismétlés engedélyezve

Visszajátszható húzások

A maggal vezérelt mód azokra a pillanatokra való, amikor a „bízzon bennem, ez véletlen volt” nem elég.

Válasszon ki előre egy magot, amiben mindenki megegyezik – egy dátumot, egy hashtaget, valamely nyilvános érték záróárát –, és jelentse be a húzás előtt. Bárki beírhatja ugyanazt a magot ugyanazokkal a beállításokkal, és pontosan ugyanazt az eredményt kapja. Ezzel nem azt bizonyítja, hogy a számok kiszámíthatatlanok voltak, hanem azt, hogy nem húzott újra addig, amíg meg nem tetszett a válasz.

Ez az a mód is, ahogyan a véletlenszerűséget megismételhetővé teheti olyan munkában, amelyet ellenőrizni kell: egy mintavételi terv, amelyet egy kolléga újra lefuttathat, egy teszt-adathalmaz, amely stabil marad egy teszt-készleten belül, vagy egy osztálytermi feladat, ahol minden diák ugyanazt a „véletlen” adatot kapja.

Eloszlás választása

Az egyenletes eloszlás a tartomány minden számának ugyanakkora esélyt ad. Erre gondolnak az emberek általában, amikor véletlent mondanak, és ez az alapértelmezett.

A többi az eredményeket egy érték köré csoportosítja, ahogyan a valós mennyiségek is szoktak viselkedni:

  • Normális (Gauss) – testmagasság, mérési hibák, teszteredmények. Állítson be átlagot és szórást.
  • Exponenciális – független események közötti várakozási idők.
  • Poisson – események száma egy rögzített időintervallumban: érkezések óránként, hibás darabok egy tételben.
  • Háromszög – amikor ismeri a minimumot, a maximumot és a legvalószínűbb értéket, de semmi mást. Gyakori a projektbecsléseknél.
  • Binomiális – sikerek száma rögzített számú próbálkozásból, rögzített valószínűség mellett.

Minden eloszlás a beállított tartományra van vágva, így egy hosszú Gauss-farok nem léphet ki a minimumból és maximumból.

Hol használják a véletlen számokat

Játékok és szórakozás

  • Társasjátékok – kockadobás, sorrend meghatározása
  • Asztali szerepjátékok4d6dl1 a képességértékekhez, 2d20kh1 az előnyhöz
  • Nyereményjátékok – nyertes kiválasztása, maggal, hogy a résztvevők ellenőrizhessék
  • Kvízek – véletlen kérdéssorrend

Statisztika és tudomány

  • Mintavételezés – minta húzása egy populációból ismétlés nélkül
  • A/B tesztelés – résztvevők csoportokba sorolása
  • Monte Carlo szimuláció – valószínűség becslése ismétléssel
  • Bootstrapping – újramintavételezés a bizonytalanság becsléséhez

Fejlesztés

  • Tesztadatok – egymillió érték, a háttérben generálva, hogy az oldal reszponzív maradjon
  • Fixtures – maggal vezérelt, így egy elbukó teszt mindkétszer ugyanúgy bukik el
  • Véletlen azonosítók – feltöltéssel, előtaggal vagy sablonnal
  • Terheléses tesztelés – sablonos azonosítók, mint user{n}@example.com

Valódi vs. pszeudovéletlen számok

Math.random()crypto.getRandomValues()Maggal vezérelt (xoshiro128**)
TípusPszeudovéletlenKriptográfiailag biztonságosPszeudovéletlen, determinisztikus
EntrópiaforrásMotor által választott magRendszer CSPRNGAz Ön magszövege
Előre jelezhető?Potenciálisan igenNemIgen, tervezés szerint
Megismételhető?NemNemMindig
Alkalmas biztonsági célraNemIgenNem
Alkalmas statisztikai célraFüggIgenIgen
Alkalmas ellenőrizhető sorsoláshozNemNemIgen

A Math.random() sehol sem kerül felhasználásra ebben az eszközben.

Húzások ismétlés nélkül

A Nincs ismétlés opció bekapcsolásával a tartomány minden száma legfeljebb egyszer szerepel. Ideális az alábbiakhoz:

  • Nyereményjátékok – senki sem nyerhet kétszer
  • Permutációk – egy elemhalmaz megkeverése
  • Bingó – olyan számok húzása, amelyek egyszer húzva maradnak
  • Lottó – hat különböző szám 1-től 49-ig

A húzás egy részleges Fisher–Yates keveréssel történik, így 6 szám kérése egymillióból ugyanolyan gyors, mint 6 szám kérése 49-ből – sosem ismétlődik reménykedve, hogy elkerülje az ütközést. Ha több egyedi számot kér, mint amennyit a tartomány adni tud, a generátor ezt jelzi ahelyett, hogy lefagyna.

Eredmények exportálása

Másolja a számokat egyszerű szövegként, tetszőleges elválasztóval, CSV-ként egy táblázathoz, JSON-ként kódhoz, vagy Markdown táblázatként dokumentációhoz. A nagyon nagy húzások teljes egészükben a memóriában maradnak, és teljesen másolhatók, még akkor is, ha a képernyőn csak az első pár ezer jelenik meg.

Véletlen számok generálása saját kódban

JavaScript / TypeScript

// Kriptográfiailag biztonságos egész szám [min, max] tartományban, modulo torzítás nélkül.
// A naiv `value % range` az alacsony számokat részesíti előnyben, ha a tartomány
// nem osztja el egyenletesen a 2**32-t - ezért elutasítjuk az egyenlőtlen maradékba eső értékeket.
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

# Kriptográfiailag biztonságos, modulo torzítás nélkül
n = secrets.randbelow(max - min + 1) + min

# Visszajátszható: ugyanaz a mag mindig ugyanazt a sorozatot adja
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Ismétlés nélkül
sample = random.sample(range(min, max + 1), count)

PHP

// Kriptográfiailag biztonságos (PHP 7+), modulo torzítás nélkül
$n = random_int($min, $max);

// Visszajátszható
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Gyakran ismételt kérdések (GYIK)

Valóban véletlen az eredmény? Biztonságos módban igen. A crypto.getRandomValues() függvényből származik, egy kriptográfiailag biztonságos generátorból, amelyet az operációs rendszer entrópia-készlete táplál. Az eredmények egyenletesen elosztottak és kiszámíthatatlanok. A maggal vezérelt mód szándékosan az ellenkezője: visszajátszható, és pontosan ez a lényege.
Hány számot generálhatok egyszerre? Akár 1 000 000-at. Az 50 000 fölötti húzásokat egy háttérszál (worker) számolja ki, hogy az oldal reszponzív maradjon, a képernyőn pedig az első 2000 jelenik meg a maradék darabszámával – a másolás így is mindent tartalmaz.
Generálhatok negatív számokat? Igen. Állítson be negatív minimumot. A JavaScript számok teljes tartománya működik, beleértve a mindkét végén negatív tartományokat is.
A rendezés befolyásolja a véletlenszerűséget? Nem. A számok húzása előbb történik, a rendezés utólag. A rendezés csak a megjelenítés sorrendjét változtatja meg.
Ugyanaz a mag holnap is ugyanazokat a számokat adja? Igen, bármely más eszközön vagy böngészőben is. A maggal vezérelt generátor teljesen determinisztikus, és kizárólag a magtól és a beállításoktól függ.
Mit mond el az egyenletességi teszt? Egy khi-négyzet tesztet futtat, amely összeveti, hogy az egyes számok valójában milyen gyakran jöttek ki azzal, hogy elméletileg milyen gyakran kellene. Ha a statisztika a kritikus érték alatt marad, az eredmények összhangban vannak egy egyenletes eloszlással. Ehhez viszonylag szűk tartomány és elegendő húzás szükséges – lehetőség szerint legalább öt húzás minden lehetséges értékre –, hogy érdemi eredményt adjon.
Hogyan működnek a súlyok? Adja meg őket szám:súly párokként, például 1:5, 2:1, 3:1. Itt az 1-es szám ötször olyan valószínű, mint a 2-es vagy a 3-as. A fel nem sorolt számok súlya nulla, ezek soha nem kerülnek kihúzásra.
Milyen dobókocka-jelölés támogatott? A 3d6 három hatoldalú kockát dob. Módosítót a 3d6+2 formával adhat hozzá. A dobásokat a kh, kl, dh, dl jelölésekkel tarthatja meg vagy dobhatja el – így a 2d20kh1 a két d20 közül a magasabbat tartja meg (előny/advantage), a 4d6dl1 pedig négy d6 közül a legalacsonyabbat dobja el.
Tárolódik valahol az előzményem? Csak ebben a böngészőben, helyi tárolóban (local storage). Sosem jut el szerverre, nem szinkronizálódik másik eszközre, és eltűnik, ha törli az oldal adatait. Exportálja JSON formátumba, ha meg szeretné őrizni vagy át szeretné vinni.

Örülnék, ha megosztanád ezeket az oldalakat barátaiddal, elmentenéd a könyvjelzőkbe vagy linkelnéd őket. Köszönöm! 🙏