¿Cómo elegir un elemento aleatorio en esta matriz solo una vez en todos los objetos declarados en main?

Me gustaría que estos objetos impriman los nombres aleatorios en la matriz solo una vez en todos los objetos declarados en main. Mi problema es que mostraría los nombres dos veces o más.

public class Fighters {

    private static String[] names = { "Terminator", "Slicer","Ninja", "cow", "Robot", "littlegirl" };
    private static int id = 0;

    public Fighters(){
        id++;
        name = names[(int) (Math.random() * names.length)];
    }

    public String toString(){
        return String.format(id+" Name:%-5s, name);
    }
}

Enmain() Tengo estos objetos

Fighters a1 = new Fighters();
System.out.println(a1.toString());

Fighters a2 = new Fighters();
System.out.println(a2.toString());

Fighters a3 = new Fighters();
System.out.println(a3.toString());

Respuestas a la pregunta(3)

Su respuesta a la pregunta