adds shuffle implementation with random test