Learning to use Collections and shuffling is not so bad! Suppose you create a grid of "Cells" and for each cell, create an ArrayList<Cell> called neighborCells, and populate it.
Then, to shuffle the list, one only needs this line:
Any collection that extends the List interface can be used as a parameter in the above code.
To iterate through the randomized collections is easy. Just use a "for each" loop. Assuming a method called something like checkDirection():
for (Cell n: neighborCells)
There are better performing collections than ArrayList for this sort of thing, and neat recursive implementations for tree searching. But I am refraining from going into that because of the reluctance you expressed about Collections. I figure it's good to first get something easy working. As a consequence, I may have aimed this answer too low for your knowledge level.
Which algo from the wiki are you thinking of implementing?