Olá, para criar senhas aleatórias eu utilizo a comando $variavelsenha = RAND(1111,9999);
(No caso acima vai criar uma senha aleatória entre o intervalo de 1111 até 9999.
Se quiser que a senha dure apenas um tempo de 5min, voce pode criar uma COOKIE com tempo expiração de 5min.
Exe: setcookie("senha_temporaria", $variavelsenha, time() + (300)); //No caso 300 segundos é igual a 5 minutos.
para verificar o Cookie voce usa: $senhatemporaria = $_COOKIE['senha_temporaria']);
Ou se quiser salvar a senha no Banco de dados, defina um campo DATATIME para salvar a data e hora da criação da senha, e com isso podera verificar a validade da senha com uma simples consulta no Banco de Dados e uma verificação IF.
Espero ter contribuido, Abraços :)