diff --git a/src/main/java/com/alttd/ctf/game/phases/ClassSelectionPhase.java b/src/main/java/com/alttd/ctf/game/phases/ClassSelectionPhase.java
index 1337abb..dbec683 100644
--- a/src/main/java/com/alttd/ctf/game/phases/ClassSelectionPhase.java
+++ b/src/main/java/com/alttd/ctf/game/phases/ClassSelectionPhase.java
@@ -21,6 +21,9 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Optional;
@Slf4j
@@ -52,7 +55,9 @@ public class ClassSelectionPhase implements GamePhaseExecutor {
Bukkit.broadcast(MiniMessage.miniMessage().deserialize("Select your class with /ctf selectclass"));
CircularIterator teamCircularIterator = new CircularIterator<>(gameManager.getTeams());
if (teamCircularIterator.hasNext()) {
- Bukkit.getOnlinePlayers().stream()
+ ArrayList extends Player> players = new ArrayList<>(Bukkit.getOnlinePlayers());
+ Collections.shuffle(players);
+ players.stream()
.filter(player -> !player.hasPermission("ctf.bypass"))
.filter(player -> gameManager.getTeamPlayer(player.getUniqueId()).isEmpty())
.forEach(player -> {