use List instead of Queue
implement shuffule()