Bueno, en C tienes una forma de generar un número aleatorio entre 0 y n. Si conviertes ese número a carácter...pues ya está.
Revisa:
Código:
#include <stdlib.h>
int random(int num);
números del 0 al 9: (char)random(10)+48
letras mayúsculas: (char)random(26)+65
letras minúsculas: (char)random(26)+97
Utiliza siempre antes de generar la cadena randomize();
para actualizar el generador de números aleatorios.
Saludos.