Como criar uma chave AES aleatória segura em Java?

Qual é a maneira recomendada de gerar uma chave AES segura e aleatória em Java, usando o JDK padrão?

Em outros posts, eu encontrei isso, mas usando umSecretKeyFactory pode ser uma ideia melhor:

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecureRandom random = new SecureRandom(); // cryptograph. secure random 
keyGen.init(random); 
SecretKey secretKey = keyGen.generateKey();

Seria ótimo se a resposta incluísse uma explicação de por que é uma boa maneira de gerar a chave aleatória. Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion