designed to simulate shuffle