Od czego zacząć
Przeczytaj, czym jest generator liczb losowych: sprzętowe, pseudolosowe i kryptograficznie bezpieczne generatory, dlaczego liczby się powtarzają i co oferuje przeglądarka. Gdy zamiast wyjaśnień potrzebujesz liczb, generator liczb losowych losuje je w Twojej przeglądarce w dowolnym zakresie, z powtórzeniami lub bez.
Gdzie generatory po cichu zawodzą
Dobre źródło losowości to dopiero połowa pracy. Druga połowa to przeniesienie jego surowych wartości na Twój zakres i właśnie tu zawodzi wiele domowych generatorów. Wzięcie reszty z dzielenia przez rozmiar zakresu to najbardziej oczywiste podejście i jest ono subtelnie obciążone: jeśli rozmiar zakresu nie dzieli równo zbioru wartości źródła, najniższe liczby w zakresie wypadają nieco częściej niż pozostałe. Ta wada nazywa się obciążeniem modulo (modulo bias). Jednym z rozwiązań jest odrzucanie nadmiarowych wartości (rejection sampling): wartości z nierównego ogona odrzuca się i losuje od nowa. Nasz generator tak robi, więc każda liczba z Twojego zakresu ma w każdym losowaniu taką samą szansę.
To samo rozumowanie wyklucza skróty, po które sięga się najpierw. Math.random() nie obiecuje nic w kwestii bezpieczeństwa, a funkcje arkusza kalkulacyjnego, takie jak RAND() i RANDBETWEEN(), należą do tej samej klasy: wystarczą do szybkiego przetasowania, ale nie do niczego, co ktoś mógłby podważyć.
Liczby, listy i kości
Generator liczb losowych zwraca liczby z ustawionego przez Ciebie zakresu. Losowy wybór z listy działa na wklejonej przez Ciebie liście – imion, zgłoszeń, opcji – więc nie musisz ręcznie dopasowywać liczb do wierszy. Do gier planszowych rzut kością rzuca kośćmi i dodaje sumy, a do wyboru między dwiema możliwościami wystarczy rzut monetą. Gdy losowość ma coś chronić, a nie rozstrzygać, użyj generatora silnych haseł. Wszystkie te narzędzia korzystają w Twojej przeglądarce z tego samego kryptograficznie bezpiecznego źródła.