Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

Функція Math.random() повертає псевдо-випадкове число із рухомою комою з проміжку 0–1 (включно із 0, але не включаючи 1) із приблизно рівномірним розподілом значень на ньому (в подальшому його можна масштабувати до потрібних розмірів). Вихідне зерно-параметр для алгоритму генерації випадкового числа обирається реалізацією; воно не може бути обраним чи перевизначеним користувачем.

Math.random() не надає криптографічно стійких випадкових чисел. Не слід застосовувати їх будь-де у місцях, пов'язаних із інформаційною безпекою. Натомість використовуйте Web Crypto API, а точніше - метод window.crypto.getRandomValues().

Синтаксис

Math.random()

Результат

Псевдовипадкове число із рухомою комою між 0 (включно) та 1 (виключно).

Приклади

Зауважте, що числа у JavaScript являються стандартизованими згідно IEEE 754 числами із рухомою комою із поведінкою "округлення до найближчого парного". Тому проміжки, що охоплюються наступними фукнціями (за винятком власне Math.random()) не зовсім точні. За умови дуже великих обраних меж (253 чи більших) можливо у дуже рідкісних випадках отримати значення верхньої межі, яке зазвичай виключається.

Отримання випадкового числа з-поміж 0 (включно) та 1 (виключно)

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

Отримання випадкового числа з-поміж двох значень

Наступний приклад повертає випадкове число між двома вказаними значеннями. Результат не менший від (інколи дорівнює) min, і менший за (але не дорівнює) max.

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

Отримання випадкового цілого з-поміж двох значень

Наступний приклад повертає випадкове ціле число між двома заданими значеннями. Результат не менший від min (або ж від наступного цілого, більшого за min, якщо min не являється цілим), і менший за (але не дорівнює) max.

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min; //Включно з мінімальним та виключаючи максимальне значення 

}

Застосування Math.round() для отримання цілих може виглядати доволі привабливо, проте це призведе до спотворення рівномірного розподілу ймовірності результатів, що може бути неприйнятним для ваших потреб.

Отримання випадкового цілого з-поміж двох значень, включно

В той час, коли фукнція getRandomInt() включає до спектру результатів мінімум, вона виключає звідти максимум. Що, якщо вам знадобиться включити до можливих результатів як мінімум, так і максимум? Наступна фукнція getRandomIntInclusive() дозволяє цього досягти:

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min; //Включаючи мінімум та максимум 
}

Специфікації

Специфікація Статус документу Примітка
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. JavaScript 1.0 (UNIX Only) / JavaScript 1.1 (All platforms).
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.random' in that specification.
Draft  

Сумісність із браузерами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

 

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,