Есть 40 возможных чисел, которые вы хотите сгенерировать (от -40 до -21, от 21 до 40 - оба диапазона из 20 чисел) -> сгенерировать случайное равномерно распределенное число в [0,39] (которое также содержит 40 номера). Это может быть сделано в Javascript Math.floor (Math.random () * 40)
Сопоставьте выходной диапазон с желаемым диапазоном.
Например:
var uniformFrom0To39 = Math.floor(Math.random()*40)
return uniformFrom0To39 <= 19 ? uniformFrom0To39 - 40 : uniformFrom0To39 + 1
Вы также можете выполнить отображение, используя массив, [-40, -39, ..., -21, 21, 22, ..., 40] - вы также можете интерпретировать эту реализацию как «создать массив с значения, которые вы хотите, и выберите один наугад ".