shuffle with generator