Added generic Shuffler class and test cases