partial insertion shuffle implemented