Hola Peter:
No se si esto lo quieres hacer sólo para tres valores o para más.
Se me ocurre por ejemplo que cuando generas el valor aleatorio, lo que puedes hacer es que si sale el valor que no quieres que salga (por ejemplo el 3), lo que haces es volver a generar otro valor random.
Yo no borraría del array los valores para que sea más sencillo. Y si quieres usaría otro array alternativo con 0 y 1 para determinar si ese valor ya ha salido. Creamos este array del mismo tamaño que el de personas. Si no conocemos su tamaño, podríamos recurrir a un arraylist.
Algo así:
Código:
int [] cogidos = new int [20];
for (int i = 0; i < 20; i++)
{
codigos[i] = 0;
}
//Si el valor que no quiero que salga es el 5 hago esto
codigos[5] = 1;
Random rand = new Random();
int contador = 0;
while (contador < 20)
{
int valor = rand.nextInt(20);
if (cogidos[valor] == 0)
{
cogidos[valor] == 1;
System.out.println("El valor es : " + persona.get(valor).getNombre();
contador++;
}
}
//Y al final hago
System.out.println("El valor es : " + persona.get(5).getNombre();
Espero que esto te sirva.
Saludos.
Filemute