Online generator nasumičnih brojeva
Raspodjela rezultata
Test ujednačenosti
Izvucite više brojeva u užem rasponu da biste pokrenuli test.
Nedavna izvlačenja
Sačuvani predlošci
Kako radi generator nasumičnih brojeva?
Generator vam nudi dva izvora slučajnosti, a vi birate koji odgovara zadatku.
Sigurno nasumično crpi entropiju iz vašeg operativnog sistema putem Web Crypto API-ja (crypto.getRandomValues()). Nepredvidivo je i neponovljivo — ispravan izbor za stvarno izvlačenje gdje niko unaprijed ne smije moći pogoditi rezultat.
Sa seedom pretvara bilo koji tekst koji upišete u početno stanje deterministički generatora (xoshiro128**). Isti seed uvijek daje iste brojeve, tako da svako može ponoviti vaše izvlačenje i potvrditi da ste dobili ono što tvrdite.
Oboje se izvršava u potpunosti u vašem pregledniku. Nijedan broj nikada ne dospije na server.
Bez modulo pristrasnosti
Većina jednostavnih generatora mapira nasumičnu 32-bitnu vrijednost na vaš raspon pomoću value % range. Kada se raspon ne dijeli ravnomjerno u 2³², najniži brojevi se pojavljuju nešto češće od ostalih. Kroz hiljade izvlačenja to postaje mjerljivo.
Ovaj generator umjesto toga koristi rejection sampling: vrijednosti koje bi pale u neravnomjeran „rep“ se odbacuju i ponovo izvlače. Svaki broj u vašem rasponu ima potpuno istu šansu. To možete sami provjeriti ugrađenim testom ravnomjernosti.
Šta generator može
Raspon
- Minimum i maksimum — bilo koji cijeli ili decimalni raspon, uključujući negativne vrijednosti
- Koliko brojeva — od 1 do 1.000.000 u jednom izvlačenju
- Bez ponavljanja — svaki broj se pojavljuje najviše jednom, kao kod stvarnog izvlačenja
- Sortiranje — redoslijed izvlačenja, uzlazno ili silazno; sortiranje nikada ne dira slučajnost
- Korak — ograniči rezultate na višekratnike vrijednosti, tako da se pojavljuju samo 0, 5, 10, 15
- Isključi brojeve — navedite vrijednosti koje se nikada ne smiju izvući
Način rada
- Izvor slučajnosti — sigurno (Web Crypto) ili sa seedom (reproducibilno)
- Seed — bilo koji tekst; isti seed uvijek ponavlja isto izvlačenje
- Distribucija — uniformna, normalna (Gaussova), eksponencijalna, Poissonova, trokutasta, binomna
- Težine — dajte odabranim brojevima veću šansu, zapisano kao
number:weight - Zapis za kockice —
3d6+2,d20,2d20kh1za prednost (advantage),4d6dl1za bacanje statistika lika
Izlaz
- Separator — zarez, razmak, tačka-zarez, tabulator, novi red, ili bilo šta što upišete
- Brojevni sistem — decimalni, binarni, oktalni, heksadecimalni ili baza 36
- Popuni nulama — pretvori 7 u 007 za brojeve ulaznica ili ID-jeva
- Prefiks i sufiks — omotajte svaki broj fiksnim tekstom
- Šablon —
{n}je broj,{i}njegova pozicija, takouser{n}postajeuser42 - Kopiraj kao — obični tekst, CSV, JSON ili Markdown tabelu
Statistika
Svako izvlačenje se uživo sažima: zbir, srednja vrijednost, medijana, najniža, najviša vrijednost, standardna devijacija, plus koliko je rezultata parno, neparno ili prosto. Histogram pokazuje oblik distribucije, a hi-kvadrat test pokazuje da li rezultati zaista odgovaraju uniformnoj distribuciji.
Historija
Posljednjih 50 izvlačenja se čuva u vašem pregledniku, zajedno s postavkama koje su ih proizvele — jedan klik vraća bilo koje od njih. Postavke koje često koristite mogu se sačuvati kao imenovani predlošci, a cijela zbirka se izvozi u JSON datoteku koju možete uvesti na drugom uređaju. Ništa se ne čuva nigdje osim u ovom pregledniku.
Tastatura
Pritisnite Space ili R da ponovo izvučete brojeve bez posezanja za mišem.
Brze postavke
| Postavka | Raspon | Broj | Upotreba |
|---|---|---|---|
| 🎲 Kocka | 1–6 | 1 | Društvene igre, odlučivanje |
| 🪙 Novčić | 0–1 | 1 | Glava ili pismo |
| 🎰 Lutrija | 1–49 | 6 | Jedinstveni, sortirani brojevi, kao pravo izvlačenje |
| 💯 1–100 | 1–100 | 1 | Procenti, A/B podjele |
| 🔢 PIN | 0–9 | 4 | Četiri cifre, ponavljanje dozvoljeno |
Reproducibilna izvlačenja
Način rada sa seedom postoji za trenutke kada „vjeruj mi, bilo je nasumično“ nije dovoljno.
Odaberite seed oko kojeg se svi mogu unaprijed usaglasiti — datum, hashtag, zatvornu cijenu nečeg javnog — i objavite ga prije izvlačenja. Svako tada može upisati isti seed s istim postavkama i dobiti identičan rezultat. Time niste dokazali da su brojevi bili nepredvidivi; dokazali ste da niste ponavljali izvlačenje dok vam se odgovor nije svidio.
Ovo je i način da slučajnost učinite ponovljivom u radu koji se mora provjeriti: plan uzorkovanja koji kolega može ponovo pokrenuti, skup testnih podataka koji ostaje stabilan kroz cijeli testni paket, školska vježba u kojoj svaki učenik dobije iste „nasumične“ podatke.
Odabir distribucije
Uniformna daje svakom broju u rasponu istu šansu. To je ono što ljudi obično misle pod nasumičnim, i to je zadana postavka.
Ostale grupišu rezultate oko određene vrijednosti, što je ono što stvarne veličine obično rade:
- Normalna (Gaussova) — visine, greške mjerenja, rezultati testova. Postavite srednju vrijednost i standardnu devijaciju.
- Eksponencijalna — vremena čekanja između nezavisnih događaja.
- Poissonova — broj događaja u fiksnom intervalu: dolasci po satu, defekti po seriji.
- Trokutasta — kada znate minimum, maksimum i najvjerovatniju vrijednost, ali ništa drugo. Uobičajena u projektnim procjenama.
- Binomna — broj uspjeha od fiksnog broja pokušaja pri fiksnoj vjerovatnoći.
Svaka distribucija je odsječena na raspon koji postavite, tako da dugi rep Gaussove krive ne može izaći van vašeg minimuma i maksimuma.
Gdje se koriste nasumični brojevi
Igre i zabava
- Društvene igre — bacanje kocke, redoslijed poteza
- Stolne RPG igre —
4d6dl1za atribute lika,2d20kh1za prednost - Nagradne igre — biranje pobjednika, sa seedom kako bi učesnici mogli provjeriti
- Kvizovi — nasumičan redoslijed pitanja
Statistika i nauka
- Uzorkovanje — izvlačenje uzorka iz populacije bez ponavljanja
- A/B testiranje — dodjeljivanje učesnika grupama
- Monte Carlo simulacija — procjena vjerovatnoće ponavljanjem
- Bootstrapping — ponovno uzorkovanje radi procjene neizvjesnosti
Razvoj softvera
- Testni podaci — milion vrijednosti, generisan u pozadini kako bi stranica ostala odzivna
- Fixtures — sa seedom, tako da neuspio test propadne na isti način dva puta
- Nasumični ID-jevi — sa popunjavanjem, prefiksima ili šablonom
- Testiranje opterećenja — identifikatori po šablonu poput
user{n}@example.com
Stvarno nasumični vs. pseudo-nasumični brojevi
Math.random() | crypto.getRandomValues() | Sa seedom (xoshiro128**) | |
|---|---|---|---|
| Tip | Pseudo-nasumično | Kriptografski sigurno | Pseudo-nasumično, deterministički |
| Izvor entropije | Seed odabran od strane engina | Sistemski CSPRNG | Vaš tekst seeda |
| Predvidivo? | Potencijalno | Ne | Da, po dizajnu |
| Ponovljivo? | Ne | Ne | Uvijek |
| Pogodno za sigurnost | Ne | Da | Ne |
| Pogodno za statistiku | Zavisi | Da | Da |
| Pogodno za provjerljiva izvlačenja | Ne | Ne | Da |
Math.random() se nigdje u ovom alatu ne koristi.
Izvlačenja bez ponavljanja
Kada je omogućeno Bez ponavljanja, svaki broj u rasponu se pojavljuje najviše jednom. Idealno za:
- Nagradne igre — niko ne može pobijediti dvaput
- Permutacije — miješanje skupa elemenata
- Bingo — pozivanje brojeva koji ostaju pozvani
- Lutrija — šest različitih brojeva od 1 do 49
Izvlačenje koristi djelomični Fisher–Yates shuffle, tako da je traženje 6 brojeva od milion jednako brzo kao traženje 6 od 49 — nikada ne kruži u nadi da će izbjeći koliziju. Ako tražite više jedinstvenih brojeva nego što raspon može ponuditi, generator vas na to upozorava umjesto da se zaglavi.
Izvoz rezultata
Kopirajte brojeve kao obični tekst s bilo kojim separatorom, kao CSV za tabelarni proračun, kao JSON za kod, ili kao Markdown tabelu za dokumentaciju. Vrlo velika izvlačenja ostaju u potpunosti u memoriji i kopiraju se u potpunosti, iako se na ekranu prikazuje samo prvih nekoliko hiljada.
Generisanje nasumičnih brojeva u vlastitom kodu
JavaScript / TypeScript
// Kriptografski siguran cijeli broj u rasponu [min, max], bez modulo pristrasnosti.
// Naivno `value % range` favorizuje niske brojeve kada se raspon ne dijeli
// ravnomjerno u 2**32 - zato odbacujemo vrijednosti u neravnomjernom repu.
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
# Kriptografski sigurno, bez modulo pristrasnosti
n = secrets.randbelow(max - min + 1) + min
# Reproducibilno: isti seed uvijek daje isti niz
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Bez ponavljanja
sample = random.sample(range(min, max + 1), count)
PHP
// Kriptografski sigurno (PHP 7+), bez modulo pristrasnosti
$n = random_int($min, $max);
// Reproducibilno
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Često postavljana pitanja (FAQ)
Da li je rezultat zaista nasumičan?
U sigurnom načinu rada, da. Dolazi izcrypto.getRandomValues(), kriptografski sigurnog generatora napajanog entropijom vašeg operativnog sistema. Rezultati su uniformno raspoređeni i nepredvidivi. Način rada sa seedom je namjerno suprotan: reproducibilan je, i to je suština.
Koliko brojeva mogu generisati odjednom?
Do 1.000.000. Izvlačenja iznad 50.000 se izračunavaju u pozadinskom workeru kako bi stranica ostala odzivna, a ekran prikazuje prvih 2.000 uz broj preostalih — kopiranje i dalje daje potpuno sve.Mogu li generisati negativne brojeve?
Da. Postavite negativan minimum. Radi cijeli raspon JavaScript brojeva, uključujući negativne raspone na oba kraja.Utiče li sortiranje na slučajnost?
Ne. Brojevi se prvo izvlače, a potom sortiraju. Sortiranje mijenja samo redoslijed u kojem ih vidite.Hoće li isti seed sutra dati iste brojeve?
Da, i na bilo kojem drugom uređaju ili pregledniku. Generator sa seedom je potpuno deterministički i ne zavisi ni od čega osim vašeg seeda i postavki.Šta mi govori test ravnomjernosti?
Pokreće hi-kvadrat test koji upoređuje koliko se puta svaki broj zaista pojavio s koliko puta je trebao. Ako statistika ostane ispod kritične vrijednosti, rezultati su u skladu s uniformnom distribucijom. Potreban je razumno uzak raspon i dovoljno izvlačenja — najmanje pet po mogućoj vrijednosti — da bi rezultat imao smisla.Kako funkcionišu težine?
Zapišite ih kao parovenumber:weight, na primjer 1:5, 2:1, 3:1. Ovdje je 1 pet puta vjerovatnije od 2 ili 3. Brojevi koje ne navedete dobijaju težinu nula i nikada se ne izvlače.
Koji je zapis za kockice podržan?
3d6 baca tri šestostrane kockice. Dodajte modifikator sa 3d6+2. Zadržite ili odbacite kockice pomoću kh, kl, dh, dl — tako 2d20kh1 zadržava veći od dva d20 (prednost), a 4d6dl1 odbacuje najmanji od četiri d6.