Signatur
Beschreibung
Die statische Methode Math.random() gibt eine Gleitkomma-Pseudozufallszahl zurück, die größer oder gleich 0 und kleiner als 1 ist, mit annähernd gleichmäßiger Verteilung über diesen Bereich — die Sie dann auf Ihren gewünschten Bereich skalieren können. Die Implementierung wählt den initialen Seed für den Zufallszahlengenerator; er kann vom Benutzer nicht gewählt oder zurückgesetzt werden.
Rückgabewert
Beispiele
Eine Zufallszahl zwischen 0 (inklusive) und 1 (exklusive)
function getRandom() {
return Math.random();
}
Eine Zufallszahl zwischen zwei Werten
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
Eine ganze Zufallszahl zwischen zwei Werten
function getRandomInt(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // Das Maximum ist exklusiv und das Minimum inklusiv
}
Eine ganze Zufallszahl zwischen zwei Werten, inklusiv
function getRandomIntInclusive(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // Das Maximum ist inklusiv und das Minimum ist inklusiv
}
// Wichtig · Fallstricke
Hinweis: Math.random() liefert keine kryptografisch sicheren Zufallszahlen. Verwenden Sie sie nicht für sicherheitsrelevante Zwecke. Nutzen Sie stattdessen die Web Crypto API und genauer die Methode Crypto.getRandomValues().
Beachten Sie, dass Zahlen in JavaScript IEEE-754-Gleitkommazahlen mit Round-to-nearest-even-Verhalten sind, weshalb die für die folgenden Funktionen angegebenen Bereiche (mit Ausnahme von Math.random() selbst) nicht exakt sind. Üblicherweise ist die angegebene obere Grenze nicht erreichbar, aber wenn Math.random() eine Zahl sehr nahe an 1 liefert, ist die winzige Differenz beim gewünschten Maximum möglicherweise nicht darstellbar, wodurch die obere Grenze doch erreicht wird.
Hinweis: Es mag verlockend sein, Math.round() zu verwenden, doch dies würde dazu führen, dass die Zufallszahlen einer ungleichmäßigen Verteilung folgen, was für Ihre Zwecke möglicherweise nicht akzeptabel ist.