add shuffle and random