Generator liczb losowych

Wprowadź minimum, maksimum i ile liczb wylosować. Kalkulator zwraca liczby całkowite z domkniętego zakresu {min, …, max}. Przy 1 i 6 oraz jednej liczbie wynik to jedna z sześciu wartości (P = 1/6). Przy 6 liczbach bez powtórzeń z 1 do 49 każda wartość występuje najwyżej raz.

Dane

Wprowadź minimum, maksimum i ile liczb wylosować. Zakres jest domknięty: obie granice wchodzą do losowania.

Wynik

Wprowadź zakres. Wylosowane liczby pojawią się tutaj.

To nie kupon lotto i nie koło fortuny. Liczbę podzbiorów liczysz na stronie kombinacji.

Jak to działa?

Jak powstaje wynik przy 1…6 i jednej liczbie
S{1,…,6}
n6
P1/6
X∈ S

Kalkulator losuje liczby całkowite z domkniętego przedziału od minimum do maksimum. Zbiór wyników to {min, min + 1, …, max} ⊂ ℤ. Przy minimum 1 i maksimum 6 możliwe są sześć wartości: 1, 2, 3, 4, 5 i 6. Przy liczbie wyników równej 1 wynik to jedna z tych wartości, każda z prawdopodobieństwem 1/6. Kolejny klik losuje od nowa.

Gdy wprowadzasz kilka liczb i zostawiasz powtórzenia, każda pozycja jest niezależna (losowanie ze zwracaniem). Trzy liczby z 10 do 20 mogą powtórzyć tę samą wartość — to nie błąd zakresu, tylko własność modelu z powtórzeniami.

Przy opcji bez powtórzeń kalkulator buduje zestaw bez zwracania: każda wartość występuje najwyżej raz. Kalkulator wykonuje częściową permutację puli (wariant Fisher–Yates). Sześć liczb z 1 do 49 mieści się w n = 49. Dziesięć liczb z 1 do 5 bez powtórzeń już nie, bo zakres ma tylko pięć miejsc.

To nie kupon Totalizatora i nie koło fortuny. Wynik zostaje w przeglądarce. Kombinacje C(n, k) liczą, ile jest podzbiorów, a nie które liczby wylosowano.

Gdy dostępne jest crypto.getRandomValues, kalkulator przenosi wartości z generatora kryptograficznego na {0, …, n − 1} z odrzucaniem (rejection sampling), aby uniknąć obciążenia modulo (nierównych prawdopodobieństw). Gdy Web Crypto jest niedostępne, używany jest Math.random — wtedy wynik nie nadaje się do haseł ani kryptografii. Panel wyniku pokazuje użyte źródło. Minimum i maksimum muszą być całkowite; 1,5 pokazuje błąd. Zakres od −10 do 10 dopuszcza zero.

Liczba wyników to wartość od 1 do 100. Puste pole podstawia 1. Granice bezwzględne to ±1 000 000 000. To narzędzie edukacyjne, nie laboratorium NIST i nie urzędowe losowanie.

Wzór

n = max − min + 1, S = {min, min + 1, …, max}, P(X = s) = 1/n dla s ∈ S.

Jedno losowanie: wylosuj U ∈ {0, …, n − 1} jednostajnie (CSPRNG + rejection sampling, inaczej Math.random), zwróć min + U.

Bez powtórzeń: częściowa permutacja puli S (Fisher–Yates), m ≤ n.

Model matematyczny: dyskretny rozkład jednostajny na [min, max] ∩ ℤ (Knuth TAOCP vol. 2; MDN crypto.getRandomValues; kontekst NIST SP 800-90 — bez certyfikatu tej strony).

Teoria, dziedzina i ograniczenia

Definicja

Niech min, max ∈ ℤ oraz min ≤ max. Długość zakresu wynosi n = max − min + 1. Zbiór nośnika to S = {min, min + 1, …, max} = [min, max] ∩ ℤ. Dyskrety rozkład jednostajny na S przypisuje każdej wartości s ∈ S prawdopodobieństwo P(X = s) = 1/n. Kalkulator na tej stronie realizuje jedno albo wiele niezależnych losowań z S (ze zwracaniem) albo próbkowanie bez zwracania, gdy zaznaczysz brak powtórzeń.

Dla pojedynczego wyniku przy minimum 1 i maksimum 6 mamy n = 6 i P(X = k) = 1/6 dla k = 1, …, 6. To klasyczny model „uczciwej kości” na skończonym zbiorze całkowitym — nie ciągły rozkład jednostajny na przedziale rzeczywistym.

Wynik jest losowy w sensie generatora zaimplementowanego w przeglądarce, a nie w sensie dowodu o nieskończonym ciągu niezależnych zmiennych na papierze. Gdy granice są ekstremalne, najpierw sprawdź dziedzinę całkowitą, potem limit ±10⁹ oraz limit liczby wyników 100.

Kontekst historyczny i pojęciowy

Donald E. Knuth w The Art of Computer Programming, tom 2 (Seminumerical Algorithms), poświęca rozdział generowaniu liczb „losowych” w komputerze: odróżnia sekwencje deterministyczne (PRNG) od idealnej losowości oraz omawia testy i pułapki przenoszenia wyniku na skończony zakres. Współczesne przeglądarki oferują dodatkowo CSPRNG przez Web Crypto API (crypto.getRandomValues), opisane w dokumentacji MDN i w specyfikacji W3C.

NIST publikuje wytyczne dla generatorów deterministycznych i źródeł entropii w serii SP 800-90 (m.in. 800-90A dla DRBG). Ta strona nie twierdzi, że implementacja jest certyfikowana według NIST: korzysta z API przeglądarki i uczciwie rozróżnia CSPRNG od Math.random. Wytyczne NIST służą tu jako kontekst pojęciowy (jakie wymagania stawia się kryptografii), a nie jako pieczęć jakości tej strony.

Pojęciowo warto oddzielić: (1) model matematyczny — dyskretny U(S); (2) źródło bitów — CSPRNG lub PRNG; (3) przeniesienie bitów na zbiór S — tu metoda odrzucania (rejection sampling), by uniknąć nierównych prawdopodobieństw. Koło fortuny, lotto i urzędowe losowania to osobne procedury prawne i sprzętowe.

Własności formalne

Dla X ∼ jednostajny na S: E[X] = (min + max)/2, Var(X) = (n² − 1)/12. Funkcja masy jest stała na S i zero poza S. Przy m niezależnych losowaniach ze zwracaniem wektor (X₁, …, Xₘ) ma rozkład iloczynowy; powtórzenia wartości są dozwolone.

Przy m ≤ n i losowaniu bez zwracania wynik jest równomiernym m-elementowym uporządkowanym podciągiem z S (kolejność wylosowania), równoważnym częściowej permutacji. Liczba możliwych uporządkowanych m-krotek bez powtórzeń to P(n, m) = n!/(n − m)!. Gdy m > n, zdarzenie jest niemożliwe — kalkulator zgłasza błąd zamiast „udawać” wynik.

Tożsamość n = max − min + 1 jest dokładna w arytmetyce całkowitej w podanym limicie ±10⁹. Przesunięcie zakresu (min + c, max + c) nie zmienia n ani jednostajności na nowym zbiorze.

Pełne wyprowadzenie

Krok 1. Wczytaj całkowite min, max oraz liczbę wyników m ∈ {1, …, 100}. Odrzuć ułamki i min > max.

Krok 2. Policz n = max − min + 1. Przy jednym losowaniu wybierz U ∈ {0, …, n − 1} jednostajnie, potem zwróć min + U.

Krok 3 (CSPRNG). Pobierz 32-bitową wartość z crypto.getRandomValues. Niech M = 2³². Niech L = ⌊M / n⌋ · n. Odrzucaj próbki ≥ L, a potem weź resztę modulo n. Dzięki temu każda reszta 0…n−1 ma równe prawdopodobieństwo (brak modulo bias przy n, które nie dzieli M).

Krok 4 (rozwiązanie awaryjne). Gdy Web Crypto jest niedostępne: U = ⌊Math.random() · n⌋. ECMAScript nie gwarantuje jakości kryptograficznej Math.random.

Krok 5 (bez powtórzeń). Zbuduj pulę [min, …, max] i wykonaj m kroków częściowego Fisher–Yates: na pozycji i wylosuj j ∈ {i, …, n − 1}, zamień elementy, dołącz pulę[i] do wyniku.

Krok 6. Przykład: min = 1, max = 6, m = 1 → jedna liczba z sześciu z P = 1/6. min = 1, max = 49, m = 6, bez powtórzeń → sześć różnych wartości z 1…49.

Przypadki szczególne

min = max: n = 1, jedyna możliwa wartość to ta wspólna granica; bez powtórzeń dopuszczalne jest tylko m = 1. Zakres −10…10: n = 21, zero wchodzi do zbioru. m = 100 przy małych n ze zwracaniem jest dozwolone; bez powtórzeń wymaga n ≥ 100.

Puste pole liczby wyników podstawia m = 1. Wartości poza ±10⁹ albo niecałkowite wejście dają komunikat błędu zamiast cichego obcięcia.

Wynik nie jest sekwencją testowaną baterią Diehard/TestU01 — to pojedyncze losowanie edukacyjne w przeglądarce.

Uwagi numeryczne

Math.random zwraca Number w [0, 1) i nie jest przeznaczony do sekretów (hasła, tokeny, klucze). Nawet przy generatorze kryptograficznym samo branie reszty x % n bez odrzucania wprowadza lekkie obciążenie, gdy n nie dzieli 2³² — stąd rejection sampling w tym kalkulatorze.

Przy bardzo dużym n (rzędu 10⁹) pula bez powtórzeń zajęłaby zbyt dużo pamięci; limity m ≤ 100 i |min|,|max| ≤ 10⁹ trzymają narzędzie w praktycznym zakresie przeglądarki. Panel wyniku pokazuje n, P = 1/n oraz etykietę źródła (Web Crypto albo generator awaryjny).

Nie używaj tej strony do podpisów cyfrowych, loterii prawnych ani generowania haseł produkcyjnych. Do kryptografii stosuj specjalne biblioteki kryptograficzne i procedury zgodne z aktualnymi zaleceniami (np. kontekstem NIST SP 800-90), a nie interaktywny kalkulator edukacyjny.

Pojęcia pokrewne i źródła

Pokrewne: kombinacje C(n, k) (liczba podzbiorów), permutacje, modulo (reszta, nie losowanie), rozkład jednostajny ciągły (inny model). Do zliczania sposobów użyj strony kombinacji; tutaj wynik to konkretne liczby.

Źródła: Knuth, TAOCP vol. 2 — Seminumerical Algorithms (rozdział o liczbach losowych); NIST SP 800-90A Rev. 1 (DRBG — kontekst, nie certyfikat tej strony); MDN — Crypto.getRandomValues; Wikipedia — Discrete uniform distribution; W3C Web Cryptography API.

Jak korzystać

  1. Wprowadź minimum i maksimum, na przykład 1 i 6.
  2. Pozostaw 1 w polu liczby wyników, gdy potrzebujesz jednej wartości.
  3. Kliknij Losuj. Wynik to liczba całkowita od 1 do 6 włącznie (P = 1/6).
  4. Gdy chcesz kilka różnych liczb, wprowadź ich liczbę i zaznacz brak powtórzeń. Z 1 do 49 i 6 wynikami zestaw nie powtarza wartości.
  5. Sprawdź w panelu długość n, P = 1/n oraz źródło bitów. To nie lotto — porównaj wynik z własną regułą.

Słownik symboli

Przy 1 i 6 długość zakresu n wynosi 6, a prawdopodobieństwo jednej wartości przy jednym losowaniu to 1/6.

min, max
Całkowite granice zakresu. Obie wchodzą do losowania. Przy 1 i 6 zbiór ma sześć elementów.
n
Długość zakresu max − min + 1. Przy 1…6 wynosi 6. Przy 10…20 wynosi 11.
S
Zbiór {min, …, max}. Wynik pojedynczego losowania należy do S.
P
Prawdopodobieństwo 1/n dla każdej wartości przy jednym losowaniu ze zwracaniem.
m
Ile liczb wylosować (1…100). Puste pole podstawia 1.
CSPRNG
Źródło bitów z crypto.getRandomValues, gdy dostępne. Zwykły generator przeglądarki (Math.random) to tylko rozwiązanie awaryjne.

Przykłady

Przykład 1

  • Minimum 1, maksimum 6
  • Ile liczb: 1
  • Powtórzenia dozwolone

jedna liczba od 1 do 6 (P = 1/6)

n = 6. Jedna wartość z S. Kolejny klik losuje od nowa.

Przykład 2

  • Minimum 1, maksimum 49
  • Ile liczb: 6
  • Bez powtórzeń

6 różnych liczb od 1 do 49

n = 49. Sześć wartości bez zwracania. To nie kupon lotto.

Przykład 3

  • Minimum 10, maksimum 20
  • Ile liczb: 3
  • Powtórzenia dozwolone

trzy liczby od 10 do 20 (n = 11)

Trzy niezależne całkowite. Ta sama wartość może wrócić.

Przykład 4

  • Minimum −10, maksimum 10
  • Ile liczb: 1
  • Powtórzenia dozwolone

jedna liczba od −10 do 10 (n = 21)

Zero wchodzi do zbioru. P = 1/21.

Przykład 5

  • Minimum 1, maksimum 5
  • Ile liczb: 10
  • Bez powtórzeń

błąd: m > n

Bez powtórzeń nie da się wylosować 10 z pięciu miejsc.

Przykład 6

  • Minimum 5, maksimum 5
  • Ile liczb: 1
  • Powtórzenia dozwolone

zawsze 5 (n = 1)

Singleton: jedyna możliwa wartość to wspólna granica.

Powiązane kalkulatory

Najczęściej zadawane pytania

Co oznacza zakres domknięty od minimum do maksimum?

Zakres jest domknięty: obie granice wchodzą do zbioru. Przy minimum 1 i maksimum 6 możliwe są 1, 2, 3, 4, 5 i 6. Długość zakresu to n = max − min + 1.

Jak działa opcja bez powtórzeń?

Bez powtórzeń generator układa zestaw bez zwracania: każda wartość występuje najwyżej raz. Liczba wyników nie może przekroczyć n = max − min + 1. Przy 10 liczbach z zakresu długości 5 wynik pokazuje błąd.

Czy wynik jest kryptograficznie bezpieczny?

Gdy przeglądarka udostępnia crypto.getRandomValues, kalkulator korzysta z bajtów CSPRNG z odrzucaniem (rejection sampling), aby uniknąć obciążenia modulo (nierównych prawdopodobieństw). To nie jest certyfikat NIST SP 800-90, nie jest laboratorium losowości i nie zastępuje urzędowego losowania. Gdy Web Crypto jest niedostępne, używany jest Math.random — wtedy wynik nie nadaje się do haseł ani kryptografii.

Czym to się różni od Math.random?

Math.random w ECMAScript nie jest zdefiniowany jako CSPRNG i nie powinien służyć do sekretów. Ta strona preferuje crypto.getRandomValues i pokazuje w panelu wyniku, które źródło faktycznie użyto. Zwykły generator przeglądarki (Math.random) zostaje tylko jako rozwiązanie awaryjne.

Czy to koło fortuny albo losowanie lotto?

Nie. Generator zwraca liczby całkowite z podanego zakresu. Nie układa zakładu, nie kręci kołem i nie jest losowaniem Totalizatora Sportowego.

Czy działają liczby ujemne i zero?

Tak. Zakres od −10 do 10 dopuszcza zero i obie strony zera. Minimum nie może być większe od maksimum. Przyjmowane są tylko liczby całkowite.

Dlaczego ułamek 1,5 pokazuje błąd?

Model to dyskretny rozkład jednostajny na zbiorze całkowitym {min, …, max}. Ułamki nie należą do dziedziny. Wprowadź liczby całkowite, na przykład 1 i 6.

Ile liczb mogę wylosować naraz?

Od 1 do 100. Puste pole liczby wyników podstawia 1. Bez powtórzeń dodatkowym limitem jest długość zakresu n.

Czym to się różni od kombinacji C(n, k)?

Kombinacje liczą, ile jest podzbiorów k-elementowych z n elementów. Tutaj wynik to konkretne wylosowane liczby, a nie liczba sposobów.

Jakie jest prawdopodobieństwo jednej wartości przy jednym losowaniu?

Przy jednostajnym losowaniu z powtórzeniami dozwolonymi każda wartość z {min, …, max} ma prawdopodobieństwo 1/n, gdzie n = max − min + 1. Przy 1 i 6 jest to 1/6.

Przy 1 i 6 oraz jednej liczbie wynik to jedna wartość z sześciu (P = 1/6, n = 6). Liczbę podzbiorów liczysz na stronie kombinacji.

Źródła wiedzy

Definicje i ostrzeżenia poniżej pochodzą z uznanych źródeł.

Strona zaktualizowana 14 października 2026.