Ценио бих ако бисте поделили ове странице са пријатељима, сачували их у обележиваче или линковали на њих. Хвала! 🙏

Generator nasumičnih brojeva online

Acrafto Team Математика
Ажурирано
Брзи предлози
Све ради у вашем прегледачу. Ниједан број никада не напушта ваш уређај.

Kako funkcioniše generator nasumičnih brojeva?

Generator vam nudi dva izvora nasumičnosti, a vi birate koji odgovara zadatku.

Sigurna nasumičnost crpi entropiju iz vašeg operativnog sistema preko Web Crypto API-ja (crypto.getRandomValues()). Nepredvidiva je i neponovljiva – pravi izbor kada niko ne sme unapred da pogodi ishod.

Sa semenom (seed) pretvara bilo koji tekst koji unesete u početno stanje determinističkog generatora (xoshiro128**). Isto seme uvek daje iste brojeve, tako da svako može da ponovi vaše izvlačenje i potvrdi da ste dobili ono što tvrdite.

Oba rade potpuno u vašem pretraživaču. Nijedan broj nikada ne stiže do servera.

Bez modulo pristrasnosti

Većina jednostavnih generatora mapira nasumičnu 32-bitnu vrednost na vaš opseg pomoću value % range. Kada se opseg ne deli ravnomerno u 2³², najniži brojevi se pojavljuju nešto češće od ostalih. Kroz hiljade izvlačenja to postaje merljivo.

Ovaj generator umesto toga koristi odbacujuće uzorkovanje (rejection sampling): vrednosti koje bi upale u neravnomerni ostatak se odbacuju i ponovo izvlače. Svaki broj u vašem opsegu ima potpuno istu šansu. To možete sami proveriti pomoću ugrađenog testa ravnomernosti.

Šta generator ume da radi

Opseg

  • Minimum i maksimum – bilo koji ceo ili decimalni opseg, uključujući negativne vrednosti
  • Koliko brojeva – od 1 do 1.000.000 u jednom izvlačenju
  • Bez ponavljanja – svaki broj se pojavljuje najviše jednom, kao kod pravog izvlačenja
  • Sortiranje – redosled izvlačenja, rastući ili opadajući; sortiranje nikada ne dira nasumičnost
  • Korak – ograničite rezultate na umnoške vrednosti, tako da se pojavljuju samo 0, 5, 10, 15
  • Isključi brojeve – navedite vrednosti koje nikada ne smeju biti izvučene

Režim

  • Izvor nasumičnosti – siguran (Web Crypto) ili sa semenom (ponovljiv)
  • Seme – bilo koji tekst; isto seme uvek ponavlja isto izvlačenje
  • Distribucija – uniformna, normalna (Gausova), eksponencijalna, Poasonova, trougaona, binomna
  • Težine – dajte odabranim brojevima veću šansu, upisano kao number:weight
  • Notacija kockica3d6+2, d20, 2d20kh1 za prednost, 4d6dl1 za bacanje statistika

Izlaz

  • Razdvajač – zarez, razmak, tačka-zarez, tabulator, novi red, ili bilo šta što unesete
  • Brojevni sistem – dekadni, binarni, oktalni, heksadecimalni ili baza 36
  • Popuna nulama – pretvorite 7 u 007 za brojeve karata ili ID-jeva
  • Prefiks i sufiks – obavijte svaki broj fiksnim tekstom
  • Šablon{n} je broj, {i} njegova pozicija, tako da user{n} postaje user42
  • Kopiraj kao – čist tekst, CSV, JSON ili Markdown tabelu

Statistika

Svako izvlačenje se sažima uživo: zbir, srednja vrednost, medijana, najmanji, najveći, standardna devijacija, plus koliko rezultata je parno, neparno ili prosto. Histogram prikazuje oblik distribucije, a hi-kvadrat test kaže da li rezultati zaista odgovaraju uniformnoj distribuciji.

Istorija

Poslednjih 50 izvlačenja se čuva u vašem pretraživaču, zajedno sa podešavanjima koja su ih proizvela – jedan klik vraća bilo koje od njih. Podešavanja koja često koristite mogu se sačuvati kao imenovani predlošci, a sve zajedno se izvozi u JSON fajl koji možete uvesti na drugi uređaj. Ništa se ne čuva nigde osim u ovom pretraživaču.

Tastatura

Pritisnite Space ili R da ponovite izvlačenje bez posezanja za mišem.

Brzi predlošci

PredložakOpsegBrojUpotreba
🎲 Kocka1–61Društvene igre, odlučivanje
🪙 Novčić0–11Glava ili pismo
🎰 Lutrija1–496Jedinstveno, sortirano, kao pravo izvlačenje
💯 1–1001–1001Procenti, A/B podela
🔢 PIN0–94Četiri cifre, ponavljanje dozvoljeno

Ponovljiva izvlačenja

Režim sa semenom postoji za trenutke kada “veruj mi, bilo je nasumično” nije dovoljno.

Izaberite seme oko kog se svi mogu unapred složiti – datum, hešteg, zatvarajuću cenu nečega javnog – i objavite ga pre izvlačenja. Svako tada može da unese isto seme sa istim podešavanjima i dobije identičan rezultat. Time niste dokazali da su brojevi bili nepredvidivi; dokazali ste da niste ponavljali izvlačenje dok vam se odgovor nije dopao.

Ovo je takođe način da nasumičnost bude ponovljiva u poslu koji mora da se proveri: plan uzorkovanja koji kolega može ponovo pokrenuti, skup test fikstura koji ostaje stabilan kroz čitav testni paket, školska vežba u kojoj svaki učenik dobija iste “nasumične” podatke.

Izbor distribucije

Uniformna daje svakom broju u opsegu istu šansu. To je ono što ljudi obično misle pod nasumičnim, i to je podrazumevana opcija.

Ostale grupišu rezultate oko neke vrednosti, što je ono čemu teže veličine iz stvarnog sveta:

  • Normalna (Gausova) – visine, greške merenja, rezultati testova. Postavite srednju vrednost i standardnu devijaciju.
  • Eksponencijalna – vremena čekanja između nezavisnih događaja.
  • Poasonova – broj događaja u fiksnom intervalu: dolasci po satu, defekti po seriji.
  • Trougaona – kada znate minimum, maksimum i najverovatniju vrednost, ali ništa više. Uobičajeno u proceni projekata.
  • Binomna – broj uspeha od fiksnog broja pokušaja pri fiksnoj verovatnoći.

Svaka distribucija je odsečena na opseg koji ste postavili, tako da dugi rep Gausove krive ne može da izađe van vašeg minimuma i maksimuma.

Gde se koriste nasumični brojevi

Igre i zabava

  • Društvene igre – bacanje kockica, redosled poteza
  • Stone RPG igre4d6dl1 za atribute lika, 2d20kh1 za prednost
  • Nagradne igre – izbor pobednika, sa semenom kako bi učesnici mogli da provere
  • Kvizovi – nasumičan redosled pitanja

Statistika i nauka

  • Uzorkovanje – izvlačenje uzorka iz populacije bez ponavljanja
  • A/B testiranje – raspoređivanje učesnika u grupe
  • Monte Karlo simulacija – procena verovatnoće ponavljanjem
  • Bootstrapping – ponovno uzorkovanje radi procene neizvesnosti

Razvoj softvera

  • Test podaci – milion vrednosti, generisanih u pozadini kako bi stranica ostala responzivna
  • Fiksture – sa semenom, tako da test koji ne prolazi ne prolazi na isti način dva puta
  • Nasumični ID-jevi – sa popunom, prefiksima ili šablonom
  • Testiranje opterećenja – šablonski identifikatori poput user{n}@example.com

Pravi nasumični brojevi naspram pseudonasumičnih

Math.random()crypto.getRandomValues()Sa semenom (xoshiro128**)
TipPseudonasumičnoKriptografski bezbednoPseudonasumično, deterministično
Izvor entropijeSeme koje bira engineSistemski CSPRNGVaš tekst semena
Predvidivo?PotencijalnoNeDa, po dizajnu
Ponovljivo?NeNeUvek
Dobro za bezbednostNeDaNe
Dobro za statistikuZavisiDaDa
Dobro za proverljiva izvlačenjaNeNeDa

Math.random() se nigde ne koristi u ovom alatu.

Izvlačenja bez ponavljanja

Kada je uključena opcija Bez ponavljanja, svaki broj u opsegu se pojavljuje najviše jednom. Idealno za:

  • Nagradne igre – niko ne može da pobedi dvaput
  • Permutacije – mešanje skupa elemenata
  • Bingo – izvlačenje brojeva koji ostaju izvučeni
  • Lutrija – šest različitih brojeva od 1 do 49

Izvlačenje koristi delimično Fisher–Yates mešanje, tako da je traženje 6 brojeva iz miliona jednako brzo kao traženje 6 od 49 – nikada ne petlja nadajući se da izbegne kolizije. Ako tražite više jedinstvenih brojeva nego što opseg može da ponudi, generator to javlja umesto da se zaglavi.

Izvoz rezultata

Kopirajte brojeve kao čist tekst sa razdvajačem po izboru, kao CSV za tabelarni proračun, kao JSON za kod, ili kao Markdown tabelu za dokumentaciju. Veoma velika izvlačenja ostaju u celosti u memoriji i kopiraju se u celosti, iako se na ekranu prikazuje samo prvih nekoliko hiljada.

Generisanje nasumičnih brojeva u sopstvenom kodu

JavaScript / TypeScript

// Kriptografski bezbedan ceo broj u [min, max], bez modulo pristrasnosti.
// Naivno `value % range` favorizuje niske brojeve kada se range ne
// deli ravnomerno sa 2**32 - zato odbacujemo vrednosti u neravnomernom ostatku.
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 bezbedno, bez modulo pristrasnosti
n = secrets.randbelow(max - min + 1) + min

# Ponovljivo: isto seme uvek 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 bezbedno (PHP 7+), bez modulo pristrasnosti
$n = random_int($min, $max);

// Ponovljivo
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Često postavljana pitanja (FAQ)

Da li je rezultat zaista nasumičan? U sigurnom režimu, da. Dolazi iz crypto.getRandomValues(), kriptografski bezbednog generatora napajanog entropijom operativnog sistema. Rezultati su ravnomerno raspoređeni i nepredvidivi. Režim sa semenom je namerno suprotan: ponovljiv je, i to je poenta.
Koliko brojeva mogu generisati odjednom? Do 1.000.000. Izvlačenja preko 50.000 se izračunavaju u pozadinskom radniku (worker) kako bi stranica ostala responzivna, a na ekranu se prikazuje prvih 2.000 sa brojem preostalih – kopiranje i dalje daje sve.
Mogu li generisati negativne brojeve? Da. Postavite negativan minimum. Radi ceo opseg JavaScript brojeva, uključujući negativne opsege na oba kraja.
Da li sortiranje utiče na nasumičnost? Ne. Brojevi se prvo izvlače, pa se tek onda sortiraju. Sortiranje menja samo redosled u kom ih vidite.
Da li će isto seme dati iste brojeve sutra? Da, i na bilo kom drugom uređaju ili pretraživaču. Generator sa semenom je potpuno deterministički i zavisi isključivo od vašeg semena i podešavanja.
Šta mi govori test ravnomernosti? Pokreće hi-kvadrat test koji upoređuje koliko se puta svaki broj zaista pojavio sa tim koliko je puta trebalo da se pojavi. Ako statistika ostane ispod kritične vrednosti, rezultati su u skladu sa uniformnom distribucijom. Potreban je razumno uzak opseg i dovoljno izvlačenja – najmanje pet po mogućoj vrednosti – da bi rezultat imao smisla.
Kako funkcionišu težine? Upišite ih kao parove number:weight, na primer 1:5, 2:1, 3:1. Ovde je 1 pet puta verovatnije od 2 ili 3. Brojevi koje ne navedete dobijaju težinu nula i nikada se ne izvlače.
Koja notacija kockica je podržana? 3d6 baca tri šestostrane kockice. Dodajte modifikator sa 3d6+2. Zadržite ili odbacite kockice sa kh, kl, dh, dl – tako 2d20kh1 zadržava veći od dva d20 (prednost), a 4d6dl1 odbacuje najmanji od četiri d6.
Da li se moja istorija negde čuva? Samo u ovom pretraživaču, u lokalnom skladištu. Nikada ne stiže do servera, ne sinhronizuje se sa drugim uređajem i nestaje ako obrišete podatke sajta. Izvezite je u JSON ako želite da je sačuvate ili prenesete.