今回プログラムに関してどうしてもわからないことがあったため、初めて質問させていただきます。現在自分が制作しているのは、言語はC#で、一定数の人数の中から、当選回数が同じになるよう調整して任意の数抽選するプログラムです。登録した名前にはカウンタがつけられ、当選するごとにカウントを増やし、少ない人から優先して選ぶものとなっています。以下に自分が制作したコードを記載します。id;}}このコードを実行すると、配列の範囲外参照などのランタイムエラーは起こらないのですが、一度の抽選で同じ人が二度以上選ばれてしまうという論理エラーが発生します。}のようになってしまいます。このプログラムは人に対して抽選を行うため、このような複数回当選してしまうことはあり得ないようにしなければいけません。このようなエラーが起こってしまうのはなぜでしょうか。このエラーを回避する方法があれば、教えていただけるとありがたいです。現在の開発環境は、Windows10、Microsoft.NETのFramework64、v4.0.30319です。エディタはTeraPad、コマンドプロンプトからcsc.exeを実行してコンパイルしています。現在C#は勉強したてで、コードの書き方など分からないことは多いですが、C言語でのプログラミング歴があるのである程度のソースコードなら理解することができます。長くなってしまいましたが、ご教授いただけると幸いです。被らないランダム抽選であれば、「Fisher-Yates」でググると良い記事が出ると思いますよ。気になったのは作りたい物に対してかなり大規模な処理になっちゃった所ですかね。いったバグにすぐ対応出来なくなっちゃった感じですかね。簡単なロジックで出来ちゃうので紹介しておきます。実装は自分でやってみてくださいね。(一人が最低限当選する回数+1)+"回当選しました。(一人が最低限当選する回数)+"回当選しました。ミクプラは自由にリンクできます。