Generic Merge Sort(on List<T>) and Shuffle ArrayList