Generator liczb losowych

Wygeneruj losową liczbę, listę lub kilka zestawów liczb w dowolnym zakresie — wszystko bezpośrednio w Twojej przeglądarce, dzięki kryptograficznie bezpiecznej losowości, a wyniki nigdy nie trafiają na serwer.

Naciśnij Generuj, aby otrzymać wynik
Opcje

Potrzebujesz szybkiego i sprawiedliwego sposobu na uzyskanie losowej liczby? Ten darmowy, internetowy generator liczb losowych losuje jedną liczbę — albo całą listę liczb — w dowolnym wybranym przez Ciebie zakresie, od prostego zakresu od 1 do 10 aż po zakresy sięgające miliardów. Ustaw wartość minimalną i maksymalną w polach „Min” i „Maks”, wybierz, ile liczb potrzebujesz, w polu „Liczba”, i kliknij „Generuj”. Obie granice są uwzględnione, więc zakres od 1 do 10 może zwrócić zarówno 1, jak i 10.

Każdy wynik powstaje bezpośrednio w Twojej przeglądarce dzięki Web Crypto API (crypto.getRandomValues), które dostarcza kryptograficznie silnych losowych wartości ze źródła losowości zapewnianego przez system operacyjny. Nic nie jest wysyłane na serwer, nic nie jest zapisywane, a my nigdy nie widzimy Twoich liczb. Generowanie jest natychmiastowe, prywatne i działa nawet przy wolnym połączeniu, gdy strona już się załaduje.

Opcje powstały z myślą o sytuacjach, w których ludzie naprawdę potrzebują losowych liczb. Włącz „Bez powtórzeń”, aby żadna liczba nie pojawiła się dwukrotnie — dokładnie to, czego potrzebujesz przy loteriach fantowych, losowaniach czy podziale ludzi na grupy bez powtórzeń. Potrzebujesz dwudziestu zwycięzców spośród 500 uczestników? Ustaw „Min” na 1, a „Maks” na 500, włącz „Bez powtórzeń”, ustaw „Liczba” na 20 i kliknij „Generuj”. „Kolejność sortowania” porządkuje wynik rosnąco lub malejąco, a jeden przycisk kopiuje wszystkie wyniki. Gdy zmienisz „Format wyników” z „Nowy wiersz” na „Oddzielone spacjami” lub „Oddzielone przecinkami”, pojawi się „Liczba zestawów”: kilka niezależnych losowań naraz — na przykład dwadzieścia zestawów po 3 liczby na dwadzieścia rund losowania — a „Zezwól na duplikaty między zestawami” decyduje, czy ta sama liczba może pojawić się w więcej niż jednym z nich.

Jak właściwie powstaje losowość? Twoja przeglądarka dostarcza kryptograficznie silne losowe wartości za pośrednictwem Web Crypto API, a nie JavaScriptowego PRNG, takiego jak Math.random(). Gdy klikniesz „Generuj”, strona żąda losowych wartości za pomocą crypto.getRandomValues i wykorzystuje je do stworzenia liczb w wybranym zakresie. Źródło losowości jest zapewniane przez system operacyjny, więc strona nie musi utrzymywać własnego ziarna (seed) ani sekwencji pseudolosowej.

Przekształcenie surowej wartości na Twój zakres to dokładnie to miejsce, w którym generatory po cichu się mylą, i zasługuje ono na osobny akapit. Wzięcie wartości modulo rozmiar zakresu to oczywista metoda — i obarczona błędem: jeśli zakres nie dzieli się dokładnie przez 2^32, najniższe liczby pojawiają się nieco częściej niż pozostałe. Ten błąd nazywa się modulo bias i jest mierzalny, a nie tylko teoretyczny. Ten generator zamiast tego odrzuca każdą wartość powyżej największej dokładnej wielokrotności zakresu i losuje ponownie — technika ta nazywa się rejection sampling. Kosztuje to kilka dodatkowych losowań, ale w zamian daje dokładną gwarancję: każda liczba między „Min” a „Maks” ma dokładnie takie samo prawdopodobieństwo, a nie tylko prawie takie samo.

Co sprawia, że liczba jest naprawdę losowa? Liczba jest wystarczająco losowa, gdy poprzednie wyniki nic nie mówią o następnym — a w praktyce istnieją trzy poziomy tego zjawiska. Zwykła funkcja pseudolosowa, taka jak Math.random(), uruchamia deterministyczny algorytm: każdy, kto zna jej stan wewnętrzny, może odtworzyć całą sekwencję, co świetnie nadaje się do tasowania pokazu slajdów, ale nie nadaje się do niczego, gdzie wynik nie może być przewidywalny. Kryptograficznie bezpieczny generator (CSPRNG) — poziom, którego używa to narzędzie — również jest algorytmem, ale został zaprojektowany tak, by tworzyć nieprzewidywalne wartości z bezpiecznego źródła losowości zapewnianego przez system operacyjny, i zbudowany tak, że śledzenie jego wyniku niczego nie zdradza o tym, co będzie dalej. Losowość fizyczna, pochodząca ze źródeł takich jak szum atmosferyczny czy rozpad radioaktywny, stoi ponad obiema tamtymi, choć w praktyce różnica ta przestaje mieć znaczenie, gdy chodzi o wylosowanie liczby z zakresu. Właśnie dlatego przeglądarki oferują osobne API kryptograficzne zamiast po prostu ulepszać Math.random(): te dwa rozwiązania rozwiązują różne problemy, a bezpieczne jest tylko jedno z nich, gdy wynik ma istotne znaczenie.

Losowa sekwencja nie musi wyglądać na losową dla ludzi. Wylosuj dziesięć liczb od 1 do 10, a regularnie zobaczysz powtórzenia, takie jak 7, 7, 8, albo krótki ciąg, który cały wypada wysoko — i każda z tych sytuacji jest zupełnie normalna. Prawdziwa losowość jest nieprzewidywalna, a nie równomiernie rozłożona: każde losowanie jest niezależne, wcześniejsze liczby nie mają absolutnie żadnego wpływu na kolejne, i żadna liczba nigdy nie jest bardziej „spóźniona” niż inna. Instynkt, który twierdzi inaczej, to błąd hazardzisty, i to ten sam instynkt sprawia, że ludzie sami są kiepskimi generatorami liczb — gdy prosi się nas o wymyślenie losowej sekwencji, unikamy powtórzeń i rozkładamy wartości znacznie równomierniej, niż robi to przypadek. Wynik, który wygląda podejrzanie schludnie, to odcisk palca człowieka; prawdziwa losowość tworzy skupiska.

Dlaczego warto wybrać ten generator liczb losowych?

Losowe liczby pojawiają się w znacznie większej liczbie miejsc, niż większości się wydaje. Nauczyciele wywołują uczniów, nie faworyzując nikogo. Streamerzy i marketerzy losują zwycięzców konkursów i loterii fantowych przed publicznością, która musi wierzyć w wynik. Gracze zastępują zgubioną kostkę albo ustalają, kto zaczyna, a turnieje losują kolejność startową. Badacze wybierają losową próbę, aby ich wyniki można było uogólnić także na osoby, które nie brały udziału w badaniu. Programiści generują dane testowe, inicjalizują symulacje ziarnem (seed) i wybierają identyfikatory podczas testów QA. Wspólną cechą jest losowy proces wyboru, którego przebieg można później wyjaśnić: ponieważ losowanie wykorzystuje losowość kryptograficzną i odbywa się w całości na Twoim urządzeniu, możesz pokazać, jak powstał wynik, jeśli ktoś go zakwestionuje.

Ten generator ma kilka uczciwych ograniczeń, o których warto wiedzieć. Tryb „Bez powtórzeń” nie może wylosować więcej liczb, niż zawiera zakres: dwadzieścia unikalnych wartości między 1 a 10 po prostu nie istnieje. Losowania są niezależne, a wcześniejsze wyniki nie wpływają na kolejne, więc odświeżenie strony nie zeruje żadnego cyklu — nie ma żadnego cyklu, w którym można by się znaleźć. I choć liczby są kryptograficznie silne, losowanie jest tutaj uczciwym sposobem wyboru, a nie przepowiednią: oficjalne losowania loterii korzystają z własnego, fizycznego lub certyfikowanego sprzętu, a to, co jest generowane w Twojej przeglądarce, nie ma z nimi żadnego związku. W ramach tych ograniczeń gwarancja jest tym silniejsza: każda liczba w Twoim zakresie ma dokładnie taką samą szansę, przy każdym losowaniu.

FAQ

Czy losowość jest kryptograficznie bezpieczna?

Tak. Wykorzystuje Web Crypto API Twojej przeglądarki (crypto.getRandomValues), które korzysta z kryptograficznie bezpiecznego źródła losowości zapewnianego przez system operacyjny. W przeciwieństwie do prostych funkcji pseudolosowych, jej wynik został zaprojektowany tak, by w praktyce był nieprzewidywalny, a technika rejection sampling sprawia, że każda liczba w zakresie jest równie prawdopodobna, zamiast faworyzować najniższe wartości.

Jak wygenerować losową liczbę w konkretnym zakresie?

Wpisz najmniejszą możliwą wartość w polu „Min”, a największą w polu „Maks”, następnie kliknij „Generuj”. Obie granice są uwzględnione w wyniku, więc zakres od 1 do 10 może dać zarówno 1, jak i 10.

Czy mogę wygenerować kilka losowych liczb naraz?

Tak. Ustaw pole „Liczba” na potrzebną Ci wartość (do 1000), a generator utworzy całą listę jednym kliknięciem. Następnie możesz skopiować wszystkie wyniki do schowka przyciskiem kopiowania albo zapisać je do pliku.

Czy mogę wygenerować kilka zestawów liczb naraz?

Tak. Zmień „Format wyników” z „Nowy wiersz” na „Oddzielone spacjami” lub „Oddzielone przecinkami”, aby pojawiło się pole „Liczba zestawów”. Ustaw je na liczbę potrzebnych niezależnych losowań — na przykład dwadzieścia zestawów po 3 liczby na dwadzieścia rund losowania — i wybierz, czy duplikaty mogą się powtarzać między różnymi zestawami.

Czy mogę posortować wygenerowane liczby?

Tak. Użyj opcji „Kolejność sortowania”, aby uporządkować każdą listę rosnąco lub malejąco, albo zostaw ustawienie „Brak”, aby zachować liczby w kolejności, w jakiej zostały wylosowane.

Jak uniknąć powtarzających się liczb?

Włącz przełącznik „Bez powtórzeń”. Gdy jest włączony, każda wygenerowana liczba na liście jest inna — idealnie do loterii fantowych, losowań nagród czy podziału ludzi na grupy. Pamiętaj, że liczba nie może przekroczyć rozmiaru zakresu: nie da się wylosować 20 unikalnych liczb od 1 do 10.

Dlaczego te same liczby wciąż się powtarzają?

Ponieważ niezależne losowania mogą się powtarzać, i dokładnie tak wygląda losowość. Każde losowanie całkowicie ignoruje wszystkie poprzednie losowania, więc w zakresie od 1 do 10 ta sama liczba ma za każdym razem 1/10 szansy na pojawienie się ponownie — a to jest normalne, nie zepsute. Jeśli potrzebujesz listy bez powtórzeń, włącz „Bez powtórzeń”; to celowo ogranicza losowanie, a nie naprawia jakiegoś błędu.

Dlaczego losowa sekwencja nie wygląda na losową?

Ponieważ prawdziwa losowość jest nieprzewidywalna, a nie równomiernie rozłożona. Ludzie oczekują, że losowy wynik będzie ładnie rozłożony, więc skupiska, powtórzenia i krótkie ciągi, takie jak 7, 7, 8, wydają się błędami, mimo że to dokładnie to, co daje przypadek. Sekwencja, która wygląda na uporządkowaną z ludzkiej perspektywy, zwykle nie jest losowa.

Czy mogę zaufać losowości generowanej w przeglądarce?

Tak, gdy pochodzi z Web Crypto API, tak jak tutaj. crypto.getRandomValues() to interfejs Web Crypto API przeznaczony do uzyskiwania kryptograficznie silnych losowych wartości, wykorzystywanych m.in. w zastosowaniach kryptograficznych. Korzysta on ze źródła losowości zapewnianego przez system operacyjny, a nie z JavaScriptu. Nie należy natomiast ufać Math.random(), gdy wynik ma znaczenie: jest deterministyczna i nigdy nie została zaprojektowana jako nieprzewidywalna.

Czy losowe liczby można przewidzieć lub na nie wpłynąć?

Nie tutaj. Wartości pochodzą z kryptograficznie bezpiecznego generatora Twojego systemu operacyjnego, więc wcześniejsze wyniki niczego nie zdradzają o kolejnym, a losowanie odbywa się w całości na Twoim urządzeniu — nie ma serwera, w który można by ingerować, ani zapytania, które ktokolwiek mógłby przechwycić. Nie możemy też wpłynąć na Twoje wyniki, ponieważ nigdy ich nie widzimy.

Czy nadaje się do wybierania zwycięzców konkursów lub loterii fantowych?

Tak. Przypisz numer każdemu uczestnikowi, wygeneruj wynik w tym zakresie, a wygrywa uczestnik, któremu on odpowiada. Ponieważ źródło jest kryptograficznie bezpieczne, a losowanie odbywa się w całości na Twoim urządzeniu, proces jest łatwy do wyjaśnienia i udokumentowania, jeśli uczestnik zakwestionuje wynik. Jeśli wybierasz liczby na kupon loteryjny, narzędzie działa jako sposób losowego wyboru, a nie jako przepowiednia: oficjalne losowania są od tego całkowicie niezależne.

Czy odświeżenie strony zmienia losowość?

Nie, i wcale nie jest to potrzebne. Każde losowanie od razu prosi system operacyjny o świeże losowe wartości, więc wyniki są niezależne niezależnie od tego, czy klikniesz „Generuj” dziesięć razy, czy odświeżysz stronę między każdym kliknięciem. Nie ma żadnego cyklu do zresetowania ani stanu, który mógłby się zdezaktualizować — odświeżenie tylko czyści wyniki wyświetlane na ekranie.

Czy generator jest darmowy i czy przechowujecie moje liczby?

Narzędzie jest całkowicie darmowe i nie wymaga rejestracji. Wszystkie liczby są generowane lokalnie w Twojej przeglądarce i nigdy nie opuszczają Twojego urządzenia, więc nie moglibyśmy przechowywać ani zobaczyć Twoich wyników, nawet gdybyśmy chcieli.