Math.random()
=============

Статический метод **`Math.random()`** возвращает псевдослучайное число с плавающей запятой, которое больше или равно нулю и меньше единицы с приблизительно равномерным распределением в этом диапазоне. В дальнейшем это число можно «отмасштабировать», привести к нужному диапазону. Выбор начального числа для алгоритма генерации случайных чисел происходит автоматически (зависит от реализации) и не может быть изменён пользователем.

**Примечание:** метод `Math.random()` *не предоставляет* криптографически стойкие случайные числа. Не используйте его ни для чего, связанного с безопасностью. Для таких целей используйте Web Crypto API и более точный метод `window.crypto.getRandomValues()`.

Интерактивный пример
--------------------

Синтаксис
---------


```js
Math.random()
```

### Параметры

Нет.

### Возвращаемое значение

Псевдослучайное число с плавающей запятой от 0 (включительно) до 1 (не включая).

Примеры
-------

Обратите внимание, что поскольку числа в JavaScript являются числами с плавающей запятой стандарта IEEE 754 с округлением к ближайшему чётному, используемые в приведённых функциях диапазоны (исключая диапазон с простым вызовом `Math.random()`), не точны. Если заданы очень большие границы (253 или выше), возможен *крайне* редкий случай достижения обычно исключённой верхней границы.

### Получение случайного числа от 0 (включительно) до 1 (не включая)


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

### Получение случайного числа в заданном интервале

Этот пример возвращает случайное число в заданном интервале. Возвращаемое значение не менее (и может быть равно) `min` и не более (и не равно) `max`.


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

### Получение случайного целого числа в заданном интервале

Этот пример возвращает случайное *целое* число в заданном интервале. Возвращаемое значение не менее `min` (или следующее целое число, которое больше `min`, если `min` не целое) и не более (но не равно) `max`.


```js
function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() \* (max - min) + min); // Максимум не включается, минимум включается
}
```


**Примечание:** Может показаться заманчивым использовать `Math.round()` для округления, но это может сделать распределение неравномерным и оказаться не тем, что вам нужно.

### Получение случайного целого числа в заданном интервале, включительно

Функция `getRandomInt()` выше включает минимальное значение, но не включает максимальное. Но что если вам нужно, чтобы включалось и минимальное, и максимальное значение? Функция `getRandomIntInclusive()` решает этот вопрос.


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

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-math.random |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `window.crypto.getRandomValues()`