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 Gleitkommazahl zurück, die größer als oder gleich 0 und kleiner als 1 ist, mit einer annähernd gleichmäßigen Verteilung über diesen Bereich — die Sie dann auf Ihren gewünschten Bereich skalieren können. Die Implementierung wählt den anfänglichen Seed für den Zufallszahlengenerierungsalgorithmus; er kann nicht vom Benutzer ausgewählt oder zurückgesetzt werden.

Note: Math.random() liefert keine kryptografisch sicheren Zufallszahlen. Verwenden Sie diese nicht für sicherheitsrelevante Anwendungen. Verwenden Sie stattdessen die Web Crypto API und genauer die Methode Crypto.getRandomValues().

Probieren Sie es aus

Syntax

js
Math.random()

Parameter

Keine.

Rückgabewert

Eine Gleitkommazahl, Pseudo-Zufallszahl zwischen 0 (einschließlich) und 1 (ausschließlich).

Beispiele

Beachten Sie, dass Zahlen in JavaScript IEEE 754-Gleitkommazahlen mit Rundung auf den nächsten geraden Wert sind. Die für die nachstehenden Funktionen behaupteten Bereiche (mit Ausnahme derjenigen für Math.random() selbst) sind nicht exakt. Normalerweise ist die behauptete obere Grenze nicht erreichbar, aber wenn Math.random() eine Zahl zurückgibt, die sehr nahe bei 1 liegt, kann der winzige Unterschied am angeforderten Maximum möglicherweise nicht darstellbar sein, was dazu führen kann, dass die obere Grenze erreicht wird.

Zufällige Zahl zwischen 0 (einschließlich) und 1 (ausschließlich)

js
function getRandom() {
  return Math.random();
}

Zufällige Zahl zwischen zwei Werten

Dieses Beispiel gibt eine Zufallszahl zwischen den angegebenen Werten zurück. Der zurückgegebene Wert ist nicht niedriger als (und kann möglicherweise gleich) min sein und ist kleiner als (und nicht gleich) max.

js
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

Zufällige Ganzzahl zwischen zwei Werten

Dieses Beispiel gibt eine zufällige Ganzzahl zwischen den angegebenen Werten zurück. Der Wert ist nicht niedriger als min (oder die nächsthöhere Ganzzahl, wenn min keine Ganzzahl ist) und ist kleiner als (aber nicht gleich) max.

js
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, aber dies würde dazu führen, dass Ihre Zufallszahlen einer nicht gleichmäßigen Verteilung folgen, was möglicherweise für Ihre Bedürfnisse nicht akzeptabel ist.

Zufällige Ganzzahl zwischen zwei Werten, einschließlich

Während die Funktion getRandomInt() oben am Minimum einschließlich ist, ist sie am Maximum ausschließlich. Was, wenn Sie die Ergebnisse sowohl am Minimum als auch am Maximum einschließlich benötigen? Die folgende Funktion getRandomIntInclusive() erreicht dies.

js
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 Language Specification
# sec-math.random

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch