added array shuffle