Buenos días.
Tu código daría el resultado pedido,pero la clase main se podría reducir bastante:
import java.util.Scanner;
public class MainGenerarAleatorio {
public static void main (String [] args) {
Scanner entrada = new Scanner (System.in);
GeneradorAleatorio generador = new GeneradorAleatorio();
int recibido;
int intentos;
int contadorAciertos = 0;
int contadorFallos = 0;
int[] resultados ;
int seguir=0;
while (seguir==0) {
System.out.println ("Introduce el número inicial del rango.");
recibido = entrada.nextInt();
generador.setNumeroInicial(recibido);
System.out.println ("Introduce el número final del rango.");
recibido = entrada.nextInt();
generador.setNumeroFinal(recibido);
System.out.println ("Introduce el número de intentos.");
intentos = entrada.nextInt();
contadorAciertos = 0;
contadorFallos = 0;
resultados = new int[intentos];
for (int i=0; i<intentos; i++) {
System.out.println ("¿En qué número estoy pensando?");
recibido = entrada.nextInt();
if (recibido==generador.generar()) {
System.out.println ("¡Has acertado! Enhorabuena.");
contadorAciertos=contadorAciertos+1;
} else {System.out.println ("No es ese.");
contadorFallos=contadorFallos+1;
}
resultados[i] = generador.getRandom();
}
System.out.println ("Has acertado "+contadorAciertos+" veces y has fallado "+contadorFallos+".");
System.out.print ("Solución: ");
for (int i=0; i<resultados.length; i++) {System.out.print(resultados[i]+" ");}
System.out.println ("¿Quieres probar de nuevo? (s/n)");
entrada.nextLine();
if (entrada.nextLine().equalsIgnoreCase("n")) {seguir=1;}
}
System.out.println ("¡Hasta la próxima!");
}
}
Un saludo