Ou alors tu te fais un tableau initialisé avec les lettres minuscules, un avec les majuscules, un avec les chiffres, un avec des caractères spéciaux... Puis tu pioche dedans à partir de random(). L'avantage c'est que tu peux facilement régler les proportions de chiffres ou caractères spéciaux.
Enfin c'est pas bien compliqué.