Generando una distribución uniforme de INTEGERS en C

He escrito una función C que creo que seleccionaenteros a partir de unadistribución uniforme con rango [rangeLow, rangeHigh], inclusive. Esto no es tarea, solo uso esto en algunos sistemas embebidos que estoy haciendo por diversión.

En mis casos de prueba, este código parece producir una distribución apropiada. Sin embargo, no me siento completamente seguro de que la implementación sea correcta. ¿Alguien podría hacer una prueba de cordura y avisarme si he hecho algo malo aquí?

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

PD Busqué otras preguntas como esta. Sin embargo, fue difícil filtrar el pequeño subconjunto de preguntas que tratan los enteros aleatorios en lugar de los números aleatorios de punto flotante.

Respuestas a la pregunta(4)

Su respuesta a la pregunta