Прежде всего, рекомендуется добавить параметр того типа, который вы собираетесь использовать в своем списке. В вашем случае карты являются целыми числами, поэтому используйте:
List<Integer> cards = new ArrayList<Integer>();
, это создает пустой список, поэтому его размер равен 0. Это означает, что ваш for l oop полностью пропущен. Чтобы исправить это, объявите некоторую переменную того, сколько карт вы хотите иметь:
final int amountOfCards = 10;
List<Integer> cards = new ArrayList<>(amountOfCards); // argument is optional, this is just for efficiency purposes
Теперь вы можете иметь l oop вот так:
for (int i = 0; i <amountOfCards; i++) {
но вы не можете используйте набор на этом этапе. Список пуст, поэтому, если вы используете set, вы получите исключение IndexOutOfBoundsException. Если вы хотите добавить карты, используйте добавить :
cards.add(random);
в качестве альтернативы вы можете добавить в позицию, используя cards.add([index here], random)