Во-первых, вы можете сэкономить некоторое время, инициализируя и объявляя свой cards
(и вы повторили «13k» с cards[39] = "13k";
- так у вас нет 52 уникальных карт). Во-вторых, я бы использовал Collections.shuffle(List)
для раздачи карт. Это можно сделать с помощью чего-то вроде
String[] cards = {
"1k", "2k", "3k", "4k", "5k", "6k", "7k", "8k", "9k", "10k", "11k", "12k", "13k",
"1r", "2r", "3r", "4r", "5r", "6r", "7r", "8r", "9r", "10r", "11r", "12r", "13r",
"1h", "2h", "3h", "4h", "5h", "6h", "7h", "8h", "9h", "10h", "11h", "12h", "13h",
"1s", "2s", "3s", "4s", "5s", "6s", "7s", "8s", "9s", "10s", "11s", "12s", "13s"
};
List<String> al = new ArrayList<>(Arrays.asList(cards));
Collections.shuffle(al);
String[] player1 = al.subList(0, 13).toArray(new String[13]);
String[] player2 = al.subList(13, 26).toArray(new String[13]);
String[] player3 = al.subList(26, 39).toArray(new String[13]);
String[] player4 = al.subList(39, al.size()).toArray(new String[13]);
System.out.println(Arrays.toString(player1));
System.out.println(Arrays.toString(player2));
System.out.println(Arrays.toString(player3));
System.out.println(Arrays.toString(player4));