public void shuffle(int[] cards) {
		if(cards == null || cards.length == 0) return;
		int[] newSeq = new int[cards.length];
		boolean[] moved = new boolean[cards.length];
		
		int pos = 0, index = 0;
		boolean move = true;
		while(pos < cards.length) {
			if(!moved[index]) {
				if(move) {
					newSeq[pos++] = cards[index];
					moved[index] = true;
					move = false;
				} else move = true;
			}
			index++;
			if(index == cards.length) index = 0;
		}
		
		for(int i = 0; i < cards.length; i++) cards[i] = newSeq[cards.length - 1 - i];
	}