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 Methode Crypto.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

js
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)

js
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.

js
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.

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. 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.

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
random

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch