配列を並び替えるのかな。
先頭(または後尾)のデータと他のうちどれか(は乱数で決める)を入れ替えて範囲を狭くする、が単純。
あと先に言っとくけど入れ替えには一時領域使うぞ。
「入れ替えようとしたらデータを上書きして消しちゃったうわぁn」とか言わないお約束だぞ。