Rispondo con ordine:
1) quello è solamente un valore pseudo-casuale: il seme del generatore va inizializzato con un valore qualsiasi; per rendere la cosa più casuale possibile prendo il valore del timer di sistema nel momento in cui viene avviata quell'istruzione.
2) la funzione rand restituisce un valore intero unsigned che va da 0 ad un certo valore massimo impostato in una variabile globale chiamata (se non erro) MAX_RAND. Tale valore, solitamente, coincide con il massimo valore che un intero può assumere (se un intero è di 2 byte, ad esempio, il massimo valore è 32768); a questo punto io gli faccio estrarre questo valore e dopo lo metto in modulo 101, così ottengo un valore compreso fra 0 e 100. Se conosci un po' di aritmetica modulare sai perchè il valore è compreso fra questi due valori.
Ciao.![]()