Moving the contents at the start of an array to the end

Heya people,
Could kind of do with some help :P ... I'm trying to write a card game in Java at the minute, and I've been trying to work out how to 'split' the deck as such for the last 3 hours, and everything I've tried just doesn't seem to be working, I dont think its anything difficult to do as such, but I just dont know how to do it, lol.

I have an array of 52 elements, 0-51, representing all of the cards in a full deck... What I need to do, is find a way to split the deck, at a random point, and then move the contents from the end of the array to the beginning...

I've tried to copy the contents across to a temporary array and stuff, but it didn't seem to work, and I'm not to sure if I was even doing it the right way..

Lol, not a fat lot I know, but I've been trying for the last 2 hours, and I've not really gotten anywhere... I think I've managed to work out how to do the shuffle function thought :-) even though i expected it to be harder to do than the cut( )

and it seems to work, but as far as the other function goes, although I get the feeling its something pretty simple, its making me want to throw my laptop across the room now... please help, I'm a student, and I really cant afford a new one, he he... any pointers in the right direction even would be much appreciated...

public void cut() {
int cutPosition = r.nextInt(52); // with r defined as new Random() in the class's constructor
for (int i=1; i<=52-cutPosition; i++)
deck.add(0, deck.remove(deck.size()-1)); // take the last card and place it at the beginning (and do this cutPosition times)
}

Yeah, that's really all there is.
And improvement to keep the number of moves as small as possible would be:

public void cut() {
int cutPosition = r.nextInt(52); // with r defined as new Random() in the class's constructor
if (cutPosition>=26) {
for (int i=1; i<=52-cutPosition; i++)
deck.add(0, deck.remove(deck.size()-1)); // take the last card and place it at the beginning (and do this cutPosition times)
} else {
for (int i=1; i<=cutPosition; i++)
deck.add(deck.remove(0)); // Take the first card and move it to the back
}
}