JavaScript: Zufallszahlen


Für bestimmte Anwendungen benötigt man Zufallszahlen. Beispiele: Lottozahlengenerator oder Passwortgenerator. Je nach Anwendungsfall kann das mit PHP oder JavaScript realisiert werden. Die JavaScript Funktion besteht nur aus einer Zeile. Um die Funktion testen zu können, nutze ich eine einfache Form:

HTML Code:
<form name="frmZufallszahl"><br>
Zufallszahl: <input type="text" name="Ausgabe" size="3" readonly>
<input type="button" onclick="Zufallszahl()" value="Zufallszahl generieren"><br>
</form>


JavaScript Code:
function Zufallszahl()
{
document.frmZufallszahl.Ausgabe.value = Math.floor(Math.random() * 100);
}

Math.random() erzeugt eine Zufallszahl zwischen 0 (inklusive) und 1 (exklusive) (0 <= Zufallszahl <1). Um eine Zufallszahl zwischen 0 und 99 (also 100 mögliche Zahlen) zu generieren, muss ich die mit Math.random() generierte Zufallszahl mit 100 multiplizieren. Das Ergebnis ist ein Wert zwischen 0.00000 und 99.99999. Davon brauche ich den ganzzahligen Anteil, den ich mit Math.floor() erhalte: Math.floor(Math.random() * 100).

Selbst ausprobieren:

Zufallszahl:

Zweites Beispiel


Die Funktion soll einen zufälligen Großbuchstaben (A, B, ..., Z) generieren. Unser Alphabet kennt 26 Buchstaben. Math.random() muss daher mit 26 multipliziert werden. Auch hier wird wieder der ganzzahlige Anteil benötigt. Das Ergebnis ist eine Zahl zwischen 0 und 25. Um jetzt einen Zufallsbuchstaben zu generieren benötigt man einerseits die ASCII Tabelle und andererseits die Funktion, um einen ASCII Wert in ein Zeichen umzuwandeln. A entspricht dem ASCII Wert 65, B - 66, ..., , Z - 90. String.fromCharCode() wandelt den ASCII Wert in ein Zeichen um. Zum Zufallswert zwischen 0 und 25 muss also 65 addiert um einen ASCII Wert zwischen 65 und 90 zu erhalten. Anschließend wird der ASCII Wert in ein Zeichen umgewandelt.

HTML Code:
<form name="frmZufallsbuchstabe"><br>
Zufallsbuchstabe: <input type="text" name="Ausgabe" size="2" readonly>
<input type="button" onclick="Zufallsbuchstabe()" value="Zufallsbuchstabe generieren"><br>
</form>


JavaScript Code:
function Zufallsbuchstabe()
{
document.frmZufallsbuchstabe.Ausgabe.value = String.fromCharCode(Math.floor(Math.random() * 26) + 65);
}

Selbst ausprobieren:

Zufallsbuchstabe: