¿Cómo crear una clave AES aleatoria segura en Java?

¿Cuál es la forma recomendada de generar una clave AES segura y aleatoria en Java, utilizando el JDK estándar?

En otras publicaciones, he encontrado esto, pero usando unSecretKeyFactory podría ser una mejor idea:

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

Sería genial si la respuesta incluyera una explicación de por qué es una buena forma de generar la clave aleatoria. ¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta