Je ne m'y connais absolument pas en cryptographie, mais un simple

((rand()-rand())/RAND_MAX) * nombre_maximal_voulu ne suffirait-il pas ??

=> renvoie un nombre entre -nombre_maximal_voulu et...