Generator liczb losowych
Rozkład wyników
Test jednostajności
Wylosuj więcej liczb w węższym zakresie, aby przeprowadzić test.
Ostatnie losowania
Zapisane presety
Jak działa generator liczb losowych?
Generator daje Ci dwa źródła losowości, a Ty wybierasz, które pasuje do zadania.
Bezpieczne losowanie czerpie entropię z Twojego systemu operacyjnego przez Web Crypto API (crypto.getRandomValues()). Jest nieprzewidywalne i niepowtarzalne — właściwy wybór dla prawdziwego losowania, w którym nikt nie powinien być w stanie z góry odgadnąć wyniku.
Z ziarnem (seeded) zamienia dowolny wpisany tekst w stan początkowy generatora deterministycznego (xoshiro128**). To samo ziarno zawsze daje te same liczby, więc każdy może powtórzyć Twoje losowanie i potwierdzić, że wynik zgadza się z tym, co deklarujesz.
Oba tryby działają wyłącznie w Twojej przeglądarce. Żadna liczba nigdy nie trafia na serwer.
Bez błędu modulo
Większość prostych generatorów mapuje losową wartość 32-bitową na zadany zakres za pomocą value % range. Gdy zakres nie dzieli się równo przez 2³², najniższe liczby pojawiają się nieco częściej niż pozostałe. Przy tysiącach losowań staje się to mierzalne.
Ten generator używa zamiast tego próbkowania odrzucającego (rejection sampling): wartości, które wpadłyby w nierówny „ogon”, są odrzucane i losowane ponownie. Każda liczba w Twoim zakresie ma dokładnie taką samą szansę. Możesz to sam zweryfikować wbudowanym testem jednorodności.
Co potrafi generator
Zakres
- Minimum i maksimum — dowolny zakres całkowity lub dziesiętny, w tym wartości ujemne
- Ile liczb — od 1 do 1 000 000 w jednym losowaniu
- Bez powtórzeń — każda liczba pojawia się co najwyżej raz, tak jak w prawdziwym losowaniu
- Sortowanie — kolejność losowania, rosnąco lub malejąco; sortowanie nigdy nie wpływa na losowość
- Krok — ogranicz wyniki do wielokrotności podanej wartości, tak by pojawiały się tylko np. 0, 5, 10, 15
- Wykluczone liczby — lista wartości, które nigdy nie mogą zostać wylosowane
Tryb
- Źródło losowości — bezpieczne (Web Crypto) lub z ziarnem (powtarzalne)
- Ziarno — dowolny tekst; to samo ziarno zawsze odtwarza to samo losowanie
- Rozkład — jednostajny, normalny (Gaussa), wykładniczy, Poissona, trójkątny, dwumianowy
- Wagi — nadaj wybranym liczbom większą szansę, zapisane jako
number:weight - Notacja kości —
3d6+2,d20,2d20kh1dla przewagi,4d6dl1do losowania statystyk postaci
Wyjście
- Separator — przecinek, spacja, średnik, tabulator, nowa linia lub dowolny wpisany znak
- System liczbowy — dziesiętny, binarny, ósemkowy, szesnastkowy lub podstawa 36
- Wypełnianie zerami — zamień 7 na 007 dla numerów biletów czy identyfikatorów
- Prefiks i sufiks — otocz każdą liczbę stałym tekstem
- Szablon —
{n}to liczba,{i}jej pozycja, więcuser{n}staje sięuser42 - Kopiuj jako — zwykły tekst, CSV, JSON lub tabelę Markdown
Statystyki
Każde losowanie jest podsumowywane na żywo: suma, średnia, mediana, minimum, maksimum, odchylenie standardowe, a także ile wyników jest parzystych, nieparzystych lub pierwszych. Histogram pokazuje kształt rozkładu, a test chi-kwadrat mówi, czy wyniki faktycznie odpowiadają rozkładowi jednostajnemu.
Historia
Ostatnie 50 losowań jest zapisywanych w Twojej przeglądarce wraz z ustawieniami, które je wygenerowały — jedno kliknięcie przywraca dowolne z nich. Często używane konfiguracje można zapisać jako nazwane presety, a całość wyeksportować do pliku JSON i zaimportować na innym urządzeniu. Nic nie jest przechowywane nigdzie poza tą przeglądarką.
Klawiatura
Naciśnij Spację lub R, aby losować ponownie bez sięgania po myszkę.
Szybkie presety
| Preset | Zakres | Ilość | Zastosowanie |
|---|---|---|---|
| 🎲 Kostka | 1–6 | 1 | Gry planszowe, podejmowanie decyzji |
| 🪙 Moneta | 0–1 | 1 | Orzeł czy reszka |
| 🎰 Loteria | 1–49 | 6 | Unikalne, posortowane, jak w prawdziwym losowaniu |
| 💯 1–100 | 1–100 | 1 | Procenty, podziały A/B |
| 🔢 PIN | 0–9 | 4 | Cztery cyfry, powtórzenia dozwolone |
Powtarzalne losowania
Tryb z ziarnem istnieje na te chwile, gdy „zaufaj mi, to było losowe” to za mało.
Wybierz ziarno, na które wszyscy mogą się zgodzić z góry — datę, hashtag, cenę zamknięcia czegoś publicznie dostępnego — i ogłoś je przed losowaniem. Każdy może wtedy wpisać to samo ziarno z tymi samymi ustawieniami i otrzymać identyczny wynik. Nie udowodniłeś, że liczby były nieprzewidywalne — udowodniłeś, że nie losowałeś ponownie, aż spodobał Ci się wynik.
To także sposób na uczynienie losowości powtarzalną w pracy, którą trzeba dać się sprawdzić: plan próbkowania, który kolega może uruchomić ponownie, zestaw danych testowych, który pozostaje stabilny w całym pakiecie testów, ćwiczenie na zajęciach, w którym każdy uczeń dostaje te same „losowe” dane.
Wybór rozkładu
Jednostajny daje każdej liczbie w zakresie taką samą szansę. To zwykle rozumie się pod pojęciem „losowy” i jest to ustawienie domyślne.
Pozostałe skupiają wyniki wokół pewnej wartości, co odpowiada zachowaniu wielkości występujących w rzeczywistości:
- Normalny (Gaussa) — wzrost, błędy pomiarowe, wyniki testów. Ustaw średnią i odchylenie standardowe.
- Wykładniczy — czasy oczekiwania między niezależnymi zdarzeniami.
- Poissona — liczba zdarzeń w ustalonym przedziale: przyjazdy na godzinę, wady na partię.
- Trójkątny — gdy znasz minimum, maksimum i wartość najbardziej prawdopodobną, ale nic więcej. Częsty w szacunkach projektowych.
- Dwumianowy — liczba sukcesów przy ustalonej liczbie prób i stałym prawdopodobieństwie.
Każdy rozkład jest przycinany do ustawionego zakresu, więc długi ogon rozkładu Gaussa nie może wyjść poza minimum i maksimum.
Gdzie stosuje się liczby losowe
Gry i rozrywka
- Gry planszowe — rzuty kostką, kolejność tur
- Gry RPG —
4d6dl1do generowania cech postaci,2d20kh1dla przewagi - Losowania nagród — wybór zwycięzcy, z ziarnem, aby uczestnicy mogli to zweryfikować
- Quizy — losowa kolejność pytań
Statystyka i nauka
- Próbkowanie — losowanie próby z populacji bez powtórzeń
- Testy A/B — przypisywanie uczestników do grup
- Symulacja Monte Carlo — szacowanie prawdopodobieństwa przez wielokrotne powtarzanie
- Bootstrapping — resampling do szacowania niepewności
Programowanie
- Dane testowe — milion wartości generowanych w tle, tak by strona pozostawała responsywna
- Fixtures — z ziarnem, dzięki czemu nieudany test zawodzi tak samo za każdym razem
- Losowe identyfikatory — z wypełnieniem, prefiksami lub szablonem
- Testy obciążeniowe — identyfikatory według szablonu, np.
user{n}@example.com
Liczby prawdziwie losowe a pseudolosowe
Math.random() | crypto.getRandomValues() | Z ziarnem (xoshiro128**) | |
|---|---|---|---|
| Typ | Pseudolosowe | Kryptograficznie bezpieczne | Pseudolosowe, deterministyczne |
| Źródło entropii | Ziarno wybrane przez silnik | Systemowy CSPRNG | Twój tekst-ziarno |
| Przewidywalne? | Potencjalnie | Nie | Tak, celowo |
| Powtarzalne? | Nie | Nie | Zawsze |
| Dobre dla bezpieczeństwa | Nie | Tak | Nie |
| Dobre dla statystyki | Zależy | Tak | Tak |
| Dobre dla weryfikowalnych losowań | Nie | Nie | Tak |
Math.random() nie jest nigdzie używany w tym narzędziu.
Losowania bez powtórzeń
Po włączeniu opcji Bez powtórzeń każda liczba w zakresie pojawia się co najwyżej raz. Idealne do:
- Losowań nagród — nikt nie może wygrać dwukrotnie
- Permutacji — przetasowania zbioru elementów
- Bingo — losowania liczb, które pozostają wylosowane
- Loterii — sześć różnych liczb z zakresu 1–49
Losowanie wykorzystuje częściowe tasowanie Fishera–Yatesa, więc wylosowanie 6 liczb z miliona jest tak samo szybkie jak wylosowanie 6 z 49 — nigdy nie zapętla się w nadziei uniknięcia kolizji. Jeśli poprosisz o więcej unikalnych liczb, niż dostarczyć może zakres, generator poinformuje o tym zamiast się zawiesić.
Eksport wyników
Skopiuj liczby jako zwykły tekst z dowolnym separatorem, jako CSV do arkusza kalkulacyjnego, jako JSON do kodu lub jako tabelę Markdown do dokumentacji. Bardzo duże losowania pozostają w pamięci w całości i kopiują się w całości, mimo że na ekranie losowany jest tylko pierwszy kilka tysięcy.
Generowanie liczb losowych we własnym kodzie
JavaScript / TypeScript
// Cryptographically secure integer in [min, max], without modulo bias.
// The naive `value % range` favours low numbers when range does not
// divide 2**32 evenly - so we reject values in the uneven tail.
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
# Cryptographically secure, no modulo bias
n = secrets.randbelow(max - min + 1) + min
# Reproducible: the same seed always gives the same sequence
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Without repetition
sample = random.sample(range(min, max + 1), count)
PHP
// Cryptographically secure (PHP 7+), no modulo bias
$n = random_int($min, $max);
// Reproducible
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Najczęściej zadawane pytania (FAQ)
Czy wynik jest naprawdę losowy?
W trybie bezpiecznym — tak. Pochodzi zcrypto.getRandomValues(), kryptograficznie bezpiecznego generatora zasilanego pulą entropii Twojego systemu operacyjnego. Wyniki są rozłożone jednostajnie i nieprzewidywalne. Tryb z ziarnem jest celowo przeciwieństwem: jest powtarzalny, i o to właśnie w nim chodzi.
Ile liczb mogę wygenerować jednocześnie?
Do 1 000 000. Losowania powyżej 50 000 są obliczane w tle (background worker), dzięki czemu strona pozostaje responsywna, a na ekranie widać pierwsze 2000 wraz z liczbą pozostałych — kopiowanie i tak daje wszystko.Czy mogę generować liczby ujemne?
Tak. Ustaw minimum jako liczbę ujemną. Działa pełny zakres liczb JavaScript, w tym zakresy ujemne po obu stronach.Czy sortowanie wpływa na losowość?
Nie. Liczby są najpierw losowane, a dopiero potem sortowane. Sortowanie zmienia tylko kolejność, w jakiej je widzisz.Czy to samo ziarno da te same liczby jutro?
Tak, i to na dowolnym innym urządzeniu czy w innej przeglądarce. Generator z ziarnem jest w pełni deterministyczny i zależy wyłącznie od Twojego ziarna i ustawień.Co mówi mi test jednorodności?
Uruchamia test chi-kwadrat, porównując, jak często faktycznie pojawiała się każda liczba, z tym, jak często powinna się pojawiać. Jeśli statystyka pozostaje poniżej wartości krytycznej, wyniki są zgodne z rozkładem jednostajnym. Potrzebuje odpowiednio wąskiego zakresu i wystarczającej liczby losowań — co najmniej pięciu na każdą możliwą wartość — aby wynik był miarodajny.Jak działają wagi?
Zapisz je jako parynumber:weight, na przykład 1:5, 2:1, 3:1. W tym przypadku 1 jest pięć razy bardziej prawdopodobna niż 2 lub 3. Liczby, których nie wymienisz, otrzymują wagę zero i nigdy nie zostaną wylosowane.
Jaka notacja kości jest obsługiwana?
3d6 rzuca trzema sześciennymi kośćmi. Dodaj modyfikator za pomocą 3d6+2. Zatrzymuj lub odrzucaj kości za pomocą kh, kl, dh, dl — więc 2d20kh1 zatrzymuje wyższy z dwóch rzutów d20 (przewaga), a 4d6dl1 odrzuca najniższy z czterech rzutów d6.