add sort based shuffle