Вы можете использовать ArrayList из ArrayList или HashMap
ArrayList:
ArrayList<ArrayList<Card>> decks = generateUnoCards();
ArrayList<Card> player1 = decks.get(0);
...
HashMap:
HashMap<String, ArrayList<Card>> decks = new HashMap<String, ArrayList<Card>>();
decks.put("player1", new ArrayList<Card>);
...
decks.put("drawPile", getRest(decks));
...
ArrayList<Card> drawPile = decks.get("drawPile");
Когда сеанс заканчивается и вы хотитечтобы перетасовать колоду, скопируйте все из Arraylists не-drawPile в drawPile, вызовите clear () для этих ArrayLists, а затем вызовите Collections.sort () в вашем drawPile.Затем заново сдайте карты.