Mi permetto di scriverti un metodo alternativo e (forse) più semplice.

Codice PHP:
// credo una stringa dei caratteri che mi interessa mettere
// nella password casuale
$caratteri "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// mescolo un po' la stringa
$caratteri str_shuffle($caratteri);
// numero dei caratteri da prelevare
$num 8;
// ecco il nome della variabile che
// conterrà la password casuale
$password_casuale "";
// ciclo per il numero di caratteri
// ad ogni ciclo prendo un carattere a caso dalla stringa
for ($i=0$i<$num$i++) {
  
$password_casuale .= substr($caratterirand(1strlen($caratteri) ), 1);