Zufallszahlen in Javascript mit Math.random()
01. September 2006 | In: Javascript
Auch bei der Programmierung mit Javascript braucht man ab und an Zufallszahlen aus einem definierten Raum. Die Methode Math.random(); liefert aber leider nur Zahlen im Bereich von 0 bis 1.
Abhilfe schafft das folgende kurze Script:
function GetRandom( min, max ) { if( min > max ) { return( -1 ); } if( min == max ) { return( min ); } return( min + parseInt( Math.random() * ( max-min+1 ) ) ); } |
Der Aufruf erfolgt mit GetRandom( 0, 3 ); und liefert eine zufällig Zahl zwischen 0 und 3.
Update 23.05.2007:
Habe die Funktion überarbeitet, es hatte sich ein kleiner Fehler eingeschlichen. Danke für den Hinweis.
Update 01.09.2008:
Funktion überarbeitet um eine bessere Verteilung der Zufallszahlen zu erreichen. Danke an @batzee für den Hinweis und @ralf für die Ausführungen dazu.

6 Kommentare zu Zufallszahlen in Javascript mit Math.random()
batzee
09. März 2008 um 21:06:52
So wie du es machst, ist die Verteilung der Zufallszahlen nicht gleichmäßig. Mein Vorschlag:
function GetRandom( min, max ) {
if( min > max ) {
return( -1 );
}
if( min == max ) {
return( min );
}
return min + parseInt( Math.random() * ( max-min+1 )
}
naden
10. März 2008 um 09:42:51
Habe dein Beipiel mal freigeschaltet. Erklär doch mal kurz, warum die Verteilung in deinem Beispiel besser funktioniert.
Ralf Engels
31. August 2008 um 02:36:32
Mein Vorredner hat recht.
Folgendes Beispiel:
GetRandom(1,2)
Damit wir in Zeile 9 gleichverteilt entweder 0, 1 oder 2 erzeugt.
Zeile 11 erzeugt daraus
r=0: return 1;
r=1: return 2;
r=2: return 2;
Der Code von Batzee ist der normale Weg um so etwas zu programmieren.
admin
01. September 2008 um 16:05:30
@ralf, macht Sinn, ich habe den Code mal geändert.
Sirion
21. Oktober 2008 um 17:11:03
da fehlt ne klammer am ende… letzte zeile entweder die von parseInt oder von return
naden
23. Oktober 2008 um 23:43:17
@sirion, diese Flüchtigkeitsfehler …