Math.random() - возвращает псевдослучайное число с плавающей запятой из диапазона [0, 1), т.е. 0 - включается в диапазон, а 1 - нет.
Чтобы обойти это ограничение и включить в диапазон последнее значение, задают диапазон на 1 больше и обрезают дробную часть.
Math.floor(x) - возвращает целое число, меньше либо равное заданному.
Собственно, суть:
Т.к. рандом возможен только от 0 до 1, то сначала задаем смещение. Допустим Вам нужно получить случайное число от 5 до 15. Тогда смещение будет равно 5. Его собственно присвоим переменной min.
var min = 5;
Дальше, нам нужно, чтобы случайно сгенерированное число вылезало за пределы 15, то есть чтобы диапазон на самом деле был [5, 16), а не [5, 15]. Поэтому мы умножаем рандомное число на разницу между верхней границей и нижней и добавляем еще единицу, чтобы собственно вылезти за пределы.
var rand = Math.random() * (max - min + 1); // эта переменная в итоге будет иметь значения [0, 11)
После этого уже можно все сложить и обрезать через floor:
var result = Math.floor( min + rand ); // то есть получается 5 + [0, 11) => [5, 16) => после обрезки получится [5,15]
В одну функцию:
var getIntRand = function(min, max) {
return Math.floor( min + Math.random() * (max - min + 1) );
}
Для создания переменной со случайным значением в диапозоне от 1 до 10 включительно, необходимо использовать таку функцию:
0 <= RandomNum < X
Получится такая функция
От 1 до 10 – Random(10)+1
Я считаю данный ответ сомнительным.