Helferfunktion und Hintergründe zur Erzeugung zufälliger, gleich verteilter Ganzzahlen
Die Erzeugung von Zufallszahlen in JavaScript scheint ein Minenfeld zu sein: Die Funktion Math.random()
liefert bloß eine Kommazahl zwischen 0 und 1. Das ist selten gewünscht, sodass das Ergebnis auf einen anderen Zahlenbereich projiziert und in eine ganze Zahl umgewandelt werden muss.
Leider erfreut sich eine äußerst problematische Lösung mit Math.round()
großer Verbreitung. Sie liefert nicht wirklich zufällige Zahlen aus einem gewünschten Zahlenbereich, sondern benachteiligt die erste und letzte Zahl. Ein neuer Artikel auf SELFHTML aktuell diskutiert dieses Thema:
Gleich verteilte Zufallszahlen in JavaScript erzeugen
Der Artikel stellt nichts grundlegendes Neues vor, sondern bietet eine kompakte Anwort auf eine häufige Fragestellung. Er erklärt die Unzulänglichkeiten der Umsetzung mit Math.round()
und stellt dieser eine bessere Umsetzung mit Math.floor()
entgegen. Diese findet man zwar glücklicherweise in immer mehr JavaScript-Dokumentationen, aber durchgesetzt hat sie sich offenbar noch nicht.
Wenn das nächste Mal Bücher verlost werden und der JavaScript-Zufallsgenerator entscheiden soll: Bitte nicht Math.round()
, sondern Math.floor()
verwenden. ;-)