Ce que tu fais tu dis à rand de choisir un nombre entre telle et telle intervale, qui correspond au code ASCII des caractères.
Et ensuite tu met ce chiffres dans un char, et tu affiches.
Exemple:
--------
/ / . ..
/ / Ton random qui stocke le nombre dans int a;
char b = ( char)a; / / tu castes a en char
et aprés ton char est dans b.