Gerando uma distribuição uniforme de INTEGERS em C

Eu escrevi uma função C que acho que selecionainteiros a partir de umdistribuição uniforme com intervalo [rangeLow, rangeHigh], inclusive. Isso não é lição de casa - estou usando isso em alguns sistemas incorporados que estou fazendo por diversão.

Nos meus casos de teste, este código parece produzir uma distribuição apropriada. Eu não estou me sentindo totalmente confiante de que a implementação está correta, no entanto. Alguém poderia fazer uma verificação de sanidade e me avisar se eu fiz algo errado aqui?

//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()

P.S. Eu procurei por outras perguntas como esta. No entanto, foi difícil filtrar o pequeno subconjunto de questões que discutem números inteiros aleatórios em vez de números aleatórios de ponto flutuante.

questionAnswers(4)

yourAnswerToTheQuestion