Генерация равномерного распределения INTEGERS в C

Я написал функцию C, которая, по моему мнению, выбираетintegers изuniform distribution с диапазоном [rangeLow, rangeHigh], включительно. Это не домашнее задание - я просто использую его в некоторых встроенных системах, которые я делаю для развлечения.

В моих тестовых случаях этот код, кажется, производит соответствующий дистрибутив. Однако я не совсем уверен, что реализация верна. Может ли кто-нибудь проверить работоспособность и дать мне знать, если я здесь что-то не так сделал?

//uniform_distribution returns an INTEGER in [rangeLow, rangeHigh], inclusive.
int uniform_distribution(int rangeLow, int rangeHigh)
{
    int myRand = (int)rand(); 
    int range = rangeHigh - rangeLow + 1; //+1 makes it [rangeLow, rangeHigh], inclusive.
    int myRand_scaled = (myRand % range) + rangeLow;
    return myRand_scaled;
}
//note: make sure rand() was already initialized using srand()

Постскриптум Я искал другие вопросы, подобные этому. Однако было трудно отфильтровать небольшое подмножество вопросов, в которых обсуждаются случайные целые числа вместо случайных чисел с плавающей точкой.

Ответы на вопрос(4)

Ваш ответ на вопрос