public static Integer pickWinner(ArrayList<PitchCandidate> pitch_candidates) {
    // pick highest ranking pitch candidate -> return_me[i]
    ArrayList<PitchCandidate> pitch_winners = new ArrayList();
    for (PitchCandidate myPC : pitch_candidates) {
      System.out.println(
          "pitch candidate pitch: " + myPC.getPitch() + " and rank: " + myPC.getRank());
      if (pitch_winners.isEmpty()) {
        pitch_winners.add(myPC);
        System.out.println(
            "pitch_winners is empty. adding " + myPC.getPitch() + " with rank" + myPC.getRank());
      } else if (myPC.getRank() > pitch_winners.get(0).getRank()) {
        pitch_winners.clear();
        pitch_winners.add(myPC);
        System.out.println(
            "after emptying pitch_winners adding "
                + myPC.getPitch()
                + " with rank "
                + myPC.getRank());
      } else if (Objects.equals(myPC.getRank(), pitch_winners.get(0).getRank())) {
        pitch_winners.add(myPC);
        System.out.println(
            "adding " + myPC.getPitch() + " to pitch_winners with rank " + myPC.getRank());
      }
    }
    int cp_winner = pitch_winners.get(0).getPitch();

    if (pitch_winners.size() > 1)
      cp_winner = pitch_winners.get(roll.nextInt(pitch_winners.size())).getPitch();
    pitch_winners.clear();
    return cp_winner;
  }