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.
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.
Wprowadź zakres. Wylosowane liczby pojawią się tutaj.
To nie kupon lotto i nie koło fortuny. Liczbę podzbiorów liczysz na stronie kombinacji.
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.
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).
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.
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.
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.
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.
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.
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.
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.
Przy 1 i 6 długość zakresu n wynosi 6, a prawdopodobieństwo jednej wartości przy jednym losowaniu to 1/6.
jedna liczba od 1 do 6 (P = 1/6)
n = 6. Jedna wartość z S. Kolejny klik losuje od nowa.
6 różnych liczb od 1 do 49
n = 49. Sześć wartości bez zwracania. To nie kupon lotto.
trzy liczby od 10 do 20 (n = 11)
Trzy niezależne całkowite. Ta sama wartość może wrócić.
jedna liczba od −10 do 10 (n = 21)
Zero wchodzi do zbioru. P = 1/21.
błąd: m > n
Bez powtórzeń nie da się wylosować 10 z pięciu miejsc.
zawsze 5 (n = 1)
Singleton: jedyna możliwa wartość to wspólna granica.
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.
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.
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.
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.
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.
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.
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.
Od 1 do 100. Puste pole liczby wyników podstawia 1. Bez powtórzeń dodatkowym limitem jest długość zakresu n.
Kombinacje liczą, ile jest podzbiorów k-elementowych z n elementów. Tutaj wynik to konkretne wylosowane liczby, a nie liczba sposobów.
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.
Definicje i ostrzeżenia poniżej pochodzą z uznanych źródeł.
Strona zaktualizowana 14 października 2026.