重みづけ抽選関数

c#で書いた重みづけ抽選関数。タプルを利用しています。 シンプルなので使いやすいかと。

``` RandomPickWithWeight.cs int RandomPickWithWeight(List < (int id, float weight) > lst) { var sum = 0f; foreach (var l in lst) { sum += l.weight; } var lot = Random.value * sum; sum = 0f; foreach (var l in lst) { sum += l.weight; if (sum >= lot) { return l.id; } } return lst[0].id; }


準備しておく重みづけ付き抽選対象の例。

```RewardData.cs

        enum REWARD_TYPE {
            Rarecoin,
            Ticket,
            XP
        }

        List < (int id, float weight) > _rewardsWeight = new List < (int id, float weight) > {
            ((int)REWARD_TYPE.Rarecoin, 30f),
            ((int)REWARD_TYPE.Ticket, 10f),
            ((int)REWARD_TYPE.XP, 5f),
        };

上記例に書いたListを関数に食わせるとintを返すので(REWARD_TYPE)にcastすると扱いやすい答えが得られます。