Generowanie jednolitego rozkładu INTEGERS w C

Napisałem funkcję C, którą myślę, że wybieraliczby całkowite odrównomierna dystrybucja z zakresem [rangeLow, rangeHigh], włącznie. To nie jest praca domowa - używam tego tylko w niektórych systemach wbudowanych majsterkujących, że robię to dla zabawy.

W moich przypadkach testowych ten kod wydaje się zapewniać odpowiednią dystrybucję. Nie jestem jednak w pełni przekonany, że wdrożenie jest poprawne. Czy ktoś może sprawdzić stan zdrowia psychicznego i dać mi znać, jeśli zrobiłem coś złego tutaj?

//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. Szukałem innych takich pytań. Trudno jednak odfiltrować mały podzbiór pytań, które omawiają losowe liczby całkowite zamiast losowych liczb zmiennoprzecinkowych.

questionAnswers(4)

yourAnswerToTheQuestion