Fais un printf("%s", chemin); juste après le sprintf, pour voir le résultat obtenu.
Je viens de relire un bout de code similaire que j'ai écrit il y a quelques temps,
sprintf(fichierFond, "images/fonds/fond_%d.bmp", hasard(1, NOMBRE_FONDS));
ça fonctionne très bien chez moi... vérifie aussi que valAleatoire est bien un int au lieu d'un long, ou une connerie du genre. (sait-on jamais, quelque fois que le gabarit %d ne soit pas adapté...)