Apexでランダムな値を取得する方法です。2013年のSalesforce Blogで公開されていました。
Selecting Random Numbers and Records on the Force.com Platform Part 1 | Developer Force Blog
共通クラスにしておくとつかいやすいと思います。
実行例です。引数に"5"と入力すると"0"〜"4"で生成されます。
SOQLで取得したSalesforceデータの中からランダムで抽出するといった使い方が可能です。
List<Account> accounts = [SELECT Name FROM Account ORDER BY Name ASC LIMIT 200]; for (Integer i = 0; i < 20; i++) { Integer result = CommonUtil.getRandomNumber(accounts.size()); System.debug(accounts[result].Name); }
例えば外部に公開されたフォームから問い合わせを受けたらランダムで担当者を抽出して所有者に割り当てるといった要望に対応するときに活用できます。