Réutiliser une variable plusieur fois c'est pas top!
dans le code de creer_professeur
vous réutilisez plusieurs fois une variable pour des choses différentes autant faire un nouveau let!
taille = vec.len();
i = rng.gen_range(0..taille);
Pour le coup du vec qui est rempli et vider aleatoirement c'est peu optimal car on dois bouger des choses en mémoire.
a l'avenir pensez a faire une pile qui contient des valeurs aleatoires et depopez une a une ces valeurs! ça marche parreil mais c'est plus performant! ;)