Número aleatório C ++ de 1 a um número muito grande (por exemplo, 25 milhões)

Como você criaria uma função que gera um número aleatório de 1 a 25 milhões?

Eu pensei em usarrand() mas estou certo ao pensar que o número máximo,RAND_MAX é = 32000 (cerca de)?

Existe uma maneira de contornar isso, uma maneira que não reduza a probabilidade de escolher números muito baixos e não aumente a probabilidade de escolher números altos / médios?

Edit: @Jamey D 's método funcionou perfeitamente independente do Qt.

questionAnswers(2)

yourAnswerToTheQuestion