Описание функции random
Функция random() используется для получения псевдослучайного числа.
При вызове функции генерируется длинная-длинная последовательность случайных чисел, которая является неизменной. Изменяется только параметр, который задает точку начала генерации случайных чисел, и задается он функцией randomSeed. Примерно так:

Для того, чтобы при каждом запуске устройства получать различные значения псевдослучайных чисел, при запуске необходимо проинициализировать генератор с произвольным параметром. Как вариант, если есть неиспользуемый аналоговый вход/выход, то можно в качестве параметра передавать значение, которое вернет функция analogRead.
Синтаксис
long random(long howbig); long random(long howsmall, long howbig)
Параметры
- howsmall: нижняя граница диапазона случайных значений (включительно);
- howbig: верхняя граница диапазона случайных значений (не включительно).
Что возвращает
Случайное число из диапазона от howsmall до howbig или из диапазона от 0 до howbig.
Пример
Выведем псевдослучайные числа из диапазона от 0 до 10 и из диапазона от 50 до 100:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Псевдослучайное число из диапазона от 0 до 10: ");
Serial.println(random(11));
Serial.print("Псевдослучайное число из диапазона от 50 до 100: ");
Serial.println(random(50, 101));
Serial.println("---------------------------------------------------");
delay(1000);
}

Код функции random
(hardware/arduino/avr/cores/arduino/WMath.cpp 1.8.10)
long random(long howbig)
{
if (howbig == 0) {
return 0;
}
return random() % howbig;
}
long random(long howsmall, long howbig)
{
if (howsmall >= howbig) {
return howsmall;
}
long diff = howbig - howsmall;
return random(diff) + howsmall;
}


