Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить случайное число

Короткий ответ

Math.random() возвращает число от 0 до 1. Чтобы получить целое число в диапазоне, его умножают и округляют вниз:

function randomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
 
console.log(randomInt(1, 100));

Случайный элемент массива

Случайный индекс получают тем же способом:

const colors = ['red', 'green', 'blue'];
 
console.log(colors[Math.floor(Math.random() * colors.length)]);

Дробное число

Для дробного числа в диапазоне умножайте без округления:

const randomFloat = (min, max) => Math.random() * (max - min) + min;
const value = randomFloat(1.5, 2.5);
 
console.log(value >= 1.5 && value < 2.5);

Результат:

true

Частая ошибка

Math.round() вместо Math.floor() делает крайние значения в два раза реже остальных. А для кодов и паролей используйте crypto.getRandomValues(), а не Math.random():

const counts = { 1: 0, 2: 0, 3: 0 };
for (let i = 0; i < 30000; i++) counts[Math.round(Math.random() * 2) + 1]++;
 
console.log(counts[2] > counts[1] * 1.5 ? 'the middle value comes out twice as often' : 'even');

Результат:

the middle value comes out twice as often

Функции из этого ответа

  • Math.random — Возвращает случайное число от 0 до 1.
  • Math.floor — Округляет число вниз до целого.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.