refactored the Shuffle method to properly use the Fisher-Yates algorithm