You can use Join:
Sub test()
Dim Directions As Variant
Directions = Array("North", "South", "East", "West")
Debug.Print Join(Directions, ", ")
End Sub
Which prints
North, South, East, West
in the Immediate Window. Also, if you are using the debugger to step through the code then in the Locals Window you can expand on the name of the array and inspect the individual elements.
On edit: expanding on this last point. If in the VBA editor you pick View -> Locals Window and set a breakpoint (by clicking to the left of a line) before the line of code where you send shoe to the worksheet, you should see something like:

If you run the sub it will go into break mode like thus:

Then if you expand on shoe you will see:

Which is enough to show that you are not initializing shoe after index 13. Others have posted answers showing the source of this bug -- but it really is an important skill to be able to, as your question asked, check the values of an array.
On Edit Join doesn't play well with arrays that are neither Variant nor String. If you have an array that is declared like e.g.
Dim Directions(1 to 4) as Integer
you could first run it through the following function:
Function ToVariant(v As Variant) As Variant
Dim temp As Variant
Dim i As Long
ReDim temp(LBound(v) To UBound(v))
For i = LBound(v) To UBound(v)
temp(i) = v(i)
Next i
ToVariant = temp
End Function
Then Join(ToVariant(Directions), ", ") will work as expected.
forloop, you can print the current array value to the debug window (aka Immediate Window). Just addDebug.print Cards(i). That'll help determine what is in thecardsarray. I'm trying to work through your macro, but what's the ultimate goal? To output theshoearray to Range A1. What's the Shoe array to consist of? Your shoe currently holds(1 to 104). As far as I can tell, you never populate it 54 times?