Код, который получает случайный результат:
int roll = dice.throwDice();
запускается ровно один раз.Вы вызываете метод throw один раз .Вы сохраняете результат, а не «указатель» на функцию, которая будет вызываться повторно всякий раз, когда roll
используется где-то.
Так что вы должны поместить эту строку:
roll = dice.throwDice();
System.out.println("You have rolled " + roll + ".");
прямо вперед тем местом, где вы ожидаете еще один бросок костей!