Não há substituto para um esquema de senha forte e auditado.
getRandomValues se existir; senão Math.random.
getRandomValues
Math.random
Usa números decimais normais; se o resultado falhar, confira vírgula vs. ponto conforme o campo aceita.