Перевод этой страницы?:

rand

Синтаксис:

    #include <cstdlib>
    int rand( void );

Функция rand() возвращает псевдослучайное число в диапазоне от нуля до RAND_MAX. Пример:

     srand( time(NULL) );
     for( i = 0; i < 10; i++ )
       printf( "Случайное число #%d: %d\n", i, rand() );

Примечание: Использование % (получение остатка от деления) для ограничения получаемых случайных чисел - не самый лучший метод получения случайных чисел определенного диапазона значений, поскольку из-за неровного деления RAND_MAX на длину интервала распределение не совсем равномерно. При малой длине отрезка этой разницей можно пренебречь для ускорения написания и работы программы. Для получения же случайных чисел более точно лучше использовать следующий алгоритм (который, конечно, работает куда медленнее простого взятия остатка):

    int randomNumber(int hi)  // Правильный генератор случайных чисел для области значений [0,hi]
    {
       // Получение области значений [0,1)
       const float scale = rand()/float(RAND_MAX);
 
       // Возврат значения в области значений [0,hi]
       return int(scale*hi + 0.001); // неявное приведение типа и отброс дробной части числа
    }

Смотри также: srand