--- title: Math.random() slug: Web/JavaScript/Reference/Global_Objects/Math/random tags: - JavaScript - Math - Довідка - метод translation_of: Web/JavaScript/Reference/Global_Objects/Math/random ---
{{JSRef}}

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

{{EmbedInteractiveExample("pages/js/math-random.html")}}

Math.random() не надає криптографічно стійких випадкових чисел. Не слід застосовувати їх будь-де у місцях, пов'язаних із інформаційною безпекою. Натомість використовуйте Web Crypto API, а точніше - метод {{domxref("RandomSource.getRandomValues()", "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; //Включаючи мінімум та максимум
}

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

Специфікація Статус документу Примітка
{{SpecName('ES1')}} {{Spec2('ES1')}} Первинне визначення. JavaScript 1.0 (UNIX Only) / JavaScript 1.1 (All platforms).
{{SpecName('ES5.1', '#sec-15.8.2.14', 'Math.random')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-math.random', 'Math.random')}} {{Spec2('ES6')}}  
{{SpecName('ESDraft', '#sec-math.random', 'Math.random')}} {{Spec2('ESDraft')}}  

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

{{Compat("javascript.builtins.Math.random")}}