Comment public methods before you write them. Demonstrate your intention with the comment. It would help me right now.
As someone previously mentioned you should use the iterator to delete the card.
The equals method is not well used. Because you haven't overriden the equal() method in the Card class, therefore the equals() method of the Object class will be called. This equals method only returns true, if the Card instances are the same! This is a very special case of the equals() specification. Is that your intention? If yes it would be clearer to write:
if (nextCard == otherCard){..
equal normally means:
Indicates whether some other object is "equal to" this one.
The equals method implements an equivalence relation on non-null
object references:
It is reflexive: for any non-null reference value x, x.equals(x) should return true.
It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns
true.
It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then
x.equals(z) should return true.
It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or
consistently return false, provided no information used in equals
comparisons on the objects is modified.
For any non-null reference value x, x.equals(null) should return false.
Source: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals%28java.lang.Object%29
How did you come to the conclusion that the remove method doesn't work?
You use the remove method of the ArrayList(), which you shouldn't use, if you previously use an Iterator. But the remove method of the ArrayList() has an advantage: it returns a boolean value. Always check return values!
Because in your case the card must always be removed, I think, and the method is public you should throw an exception, if the return value is false. (Could the carddeck be empty before you call remove()?)
An other way to check the remove method, is to check if the ArrayList's size has decreased.