валидатор принял, но при определенных параметрах рейтинга у нас получается три победителя, с чем это может быть связано. Спасть не могу, от этой мысли.
try {
    for (int i = 0; i < OnlineGame.steps.size(); i++){
        System.out.println(getName() + ":" + OnlineGame.steps.get(i));
        Thread.sleep(1000 / rating);

    }
    if (!OnlineGame.isWinnerFound){
        OnlineGame.isWinnerFound = true;
        System.out.println(getName() + ":победитель!");
    }
} catch (InterruptedException e) {
    System.out.println(getName() + ":проиграл");
}
Водим рейтинг героям так:
protected Gamer gamer1 = new Gamer("Ivanov", 98);
protected Gamer gamer2 = new Gamer("Petrov", 99);
protected Gamer gamer3 = new Gamer("Sidorov", 100);
Получаем итог работы программы при разных запусках разный