Math.random()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die statische Methode Math.random()
gibt eine Fließkommazahl zurück, die größer oder gleich 0 und kleiner als 1 ist und über diesen Bereich annähernd gleichmäßig verteilt ist. Diese Zahl kann dann auf den gewünschten Bereich skaliert werden. Die Implementierung wählt den Startwert (Seed) für den Zufallszahlengenerierungsalgorithmus aus; der Benutzer kann diesen weder wählen noch zurücksetzen.
Note:
Math.random()
liefert keine kryptografisch sicheren Zufallszahlen. Verwenden Sie diese Methode nicht für sicherheitsrelevante Anwendungen. Stattdessen sollten Sie die Web Crypto API verwenden, genauer gesagt die MethodeCrypto.getRandomValues()
.
Probieren Sie es aus
function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
console.log(getRandomInt(3));
// Expected output: 0, 1 or 2
console.log(getRandomInt(1));
// Expected output: 0
console.log(Math.random());
// Expected output: a number from 0 to <1
Syntax
Math.random()
Parameter
Keine.
Rückgabewert
Eine Fließkommazahl, die größer oder gleich 0 (einschließlich) und kleiner als 1 (ausschließlich) ist.
Beispiele
Da Zahlen in JavaScript IEEE 754 Fließkommazahlen mit Rundung nach nächstgelegener gerader Zahl sind, sind die für die unten stehenden Funktionen angegebenen Bereiche (außer für Math.random()
selbst) nicht genau. Üblicherweise ist die angegebene obere Grenze nicht erreichbar, aber wenn Math.random()
eine Zahl sehr nahe bei 1 zurückgibt, könnte der winzige Unterschied bei der angeforderten Maximalgrenze nicht darstellbar sein, was dazu führen kann, dass die obere Grenze erreicht wird.
Eine Zufallszahl zwischen 0 (einschließlich) und 1 (ausschließlich)
function getRandom() {
return Math.random();
}
Eine Zufallszahl zwischen zwei Werten generieren
Dieses Beispiel gibt eine Zufallszahl zwischen den angegebenen Werten zurück. Der zurückgegebene Wert ist nicht kleiner als (und möglicherweise gleich) min
und kleiner als (und nicht gleich) max
.
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
Eine ganze Zufallszahl zwischen zwei Werten generieren
Dieses Beispiel gibt eine zufällige ganze Zahl zwischen den angegebenen Werten zurück. Der Wert ist nicht kleiner als min
(oder die nächsthöhere ganze Zahl größer als min
, falls min
keine ganze Zahl ist) und kleiner als (aber nicht gleich) max
.
function getRandomInt(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // The maximum is exclusive and the minimum is inclusive
}
Hinweis:
Es könnte verlockend sein, Math.round()
zu verwenden, um dies zu erreichen. Allerdings würde dies dazu führen, dass Ihre Zufallszahlen einer nicht gleichmäßigen Verteilung folgen, was möglicherweise für Ihre Anforderungen nicht akzeptabel ist.
Eine ganze Zufallszahl zwischen zwei Werten, einschließlich
Während die Funktion getRandomInt()
oben den Minimalwert einschließt, den Maximalwert jedoch ausschließt, kann es sein, dass Sie Ergebnisse benötigen, die sowohl den Minimalwert als auch den Maximalwert einschließen. Die folgende Funktion getRandomIntInclusive()
erreicht dies.
function getRandomIntInclusive(min, max) {
const minCeiled = Math.ceil(min);
const maxFloored = Math.floor(max);
return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // The maximum is inclusive and the minimum is inclusive
}
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-math.random |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
random |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support