Bemeneti adatok megadása: A felhasználó megadja a legkisebb és legnagyobb számot, amelyeket a generátor használhat, valamint a generálni kívánt számok mennyiségét. Emellett lehetőség van beállítani, hogy a számok ismétlődhetnek-e és hogy sorbarendezésük szükséges-e.
Adatok ellenőrzése: A generátor ellenőrzi, hogy a megadott adatok érvényesek-e:
Véletlenszámok generálása: A generátor a megadott paraméterek alapján véletlenszerű számokat állít elő. Ha az ismétlődés engedélyezett, a generátor minden egyes számot függetlenül választja ki. Ha az ismétlődés nem engedélyezett, a generátor addig generál új számokat, amíg el nem éri a kívánt mennyiséget.
Számok rendezése: Ha a felhasználó igényli, a generált számokat sorba rendezi a generátor.
Eredmények megjelenítése: A generált véletlenszámokat a rendszer megjeleníti a felhasználó számára.
A véletlenszerű számok generálását a JavaScript beépített Math.random()
függvénye biztosítja. Ez a függvény egy álvéletlen számot állít elő a [0, 1) intervallumban, azaz a 0-t beleértve, de az 1-et kizárva. Az alábbiakban bemutatjuk ennek matematikai magyarázatát és működését.
A Math.random()
egy álvéletlen szám generátor (PRNG), amely determinisztikus algoritmusok alapján működik. Ezek az algoritmusok egy kezdőérték (seed) alapján állítanak elő látszólag véletlenszerű sorozatot. Bár a sorozat determinisztikus, megfelelően választott algoritmusok esetén a számok jól közelítik a valódi véletlenszerűséget.
A PRNG-k általában a következőképpen működnek:
Xn+1 = (aXn + c) mod m
Itt:
X
az álvéletlen számok sorozata.a
, c
, és m
paraméterek, amelyek az algoritmus karakterisztikáját határozzák meg.mod
a modulus operátor.A JavaScript Math.random()
függvénye belsőleg egy PRNG algoritmust használ, amely az ECMAScript szabvány szerint van implementálva. Bár a pontos algoritmus megvalósítása függhet a böngészőtől, általában a PRNG algoritmusok nagy eloszlási egyenletességet és hosszú periódust biztosítanak.