Не понимаю, что именно генерирует функция rand()
rand() генерирует одно целое число.
не понимаю зачем использовать остаток от деления
Операция взятия остатка от деления используется для установки верхней границы числа.
Если вычислить 12345 % 7, то результат будет меньше 7.
Если вычислить 12346 % 7, то результат будет меньше 7.
Если вычислить 123456789 % 7, то результат будет меньше 7.
Операция взятия остатка от деления одного числа на другое никакого отношения к функции rand() не имеет.