Ho un errore java.lang.NullPointerException in fase di compilazione al rigo in rosso


ArrayList<String> newCards = new ArrayList<String>();
Random rand = new Random();
for (int i=0; i<=50; i++)
{
int index = rand.nextInt(cards.size()); //cards è un vettore di stringhe e all'inizio ha 52 elementi
newCards.add(cards.get(index));
cards.remove(index);
}
newCards.add(cards.get(0));


Questo frammento è un metodo di una classe invocato nel main.
Se però, facendo un test, uso il codice direttamente nel main l'errore non viene riscontrato perché?