Hola.
Este if..else.. es innecesario:
if (!encontrado) {
System.out.print(
"Has acertado " + aciertos + " veces y has fallado " + noAciertos + " veces. Eran solución: ");
for (int i = 0; i < numAleatorios.length; i++) {
System.out.print(numAleatorios[i] + ",");
}
System.out.println();
} else {
System.out.print(
"Has acertado " + aciertos + " veces y has fallado " + noAciertos + " veces. Eran solución: ");
for (int i = 0; i < numAleatorios.length; i++) {
System.out.print(numAleatorios[i] + ",");
}
System.out.println();
}
Si te fijas, tanto si encontrado es false, como si es true, estás haciendo exactamente lo mismo en ambos casos.
Así que no es necesario consultar el valor de la variable encontrado.
A no ser que específicamente quieras variar el mensaje en pantalla según su valor, pero ahora mismo no varía.
Por lo demás, todo parece correcto.
Un saludo.