Esta funcion se nos hace muy util para cuando el usuario se le olvida la contraseña y hay que generarle una nueva para entrar a nuestra pagina.
// genera_password (longitud password en caracteres o dígitos, [tipo=alfanumerico|numerico])
// Si no indicas $tipo se asume como por defecto alfanumérico.
function genera_password($longitud, $tipo = "alfanumerico"){
if ($tipo == "alfanumerico"){
$exp_reg = "[^A-Z0-9]";
} elseif ($tipo == "numerico"){
$exp_reg = "[^0-9]";
}
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
//Ejemplo:
echo "Password: (alfanumérico) de 8 Digitos ".genera_password(8)."<br>";
echo "Password: (numérico) de 15 Digitos".genera_password(15,"numerico")."<br>";
echo "(recarga la página para ver otros passwords aleatorios)";
Fuente: Aqui