C/C++の宿題やらせてください。おながいします

このエントリーをはてなブックマークに追加
721デフォルトの名無しさん
「***すれ立てるまでもない質問はここで 第35刷***」で質問したら
こちらに逝けとのことでしたので、質問させていただきます。

----------問題---------------------------------
それぞれの値が0からn-1までの間の整数値を持ち、
さらに、すべての値は異なるような、長さがk(k<=n)
であるランダム整数列(ランダム置換列)を生成する
ためにはどうしたら良いでしょう?

1:早く、短いプログラム(擬似コード)を作りなさい。
2:そのプログラムの正当性を証明しなさい。
-----------------------------------------------

えーと、言語はCとかJAVAとか何でもいいです。
基本的に、「動くプログラムを作れ」ってことじゃなくて
「こういう方針でコーディングすればよい」ってのが
わかれば良いので。

あと、rand(でしたっけ?乱数発生させる関数)を使って
うまいことやるみたいです。

よろしくおながいします。