Salesforceでランダム文字列生成メッソドを共有します。
public String getRandomString(integer LengthRequired){
String small = 'abcdefghijklmnopqrstuvwxyz';
String big = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
String num = '0123456789';
String max = small + big + num;
String result = '';
integer position;
List<String> random = new List<String> ();
// 英小文字から最低1文字選択
position = Integer.valueof(String.valueof(Math.roundToLong((small.length()-1)*Math.random())));
random.add(small.substring(position,position+1));
// 英大文字から最低1文字選択
position = Integer.valueof(String.valueof(Math.roundToLong((big.length()-1)*Math.random())));
random.add(big.substring(position,position+1));
// 数字から最低1文字選択
position = Integer.valueof(String.valueof(Math.roundToLong((num.length()-1)*Math.random())));
random.add(num.substring(position,position+1));
// 残りの文字を全文字を対象にランダムで選択
for(Integer i = 0; i < LengthRequired - 3; i++) {
position = Integer.valueof(String.valueof(Math.roundToLong((max.length()-1)*Math.random())));
random.add(max.substring(position,position+1));
}
// 文字列の並び回を最低回数繰り返す
for(Integer i=0; i< 100; i++) {
Integer bef = Integer.valueof(String.valueof(Math.roundToLong((random.size()-1)*Math.random())));
Integer aft = Integer.valueof(String.valueof(Math.roundToLong((random.size()-1)*Math.random())));
String tmp = random[bef];
random[bef] = random[aft];
random[aft] = tmp;
}
for(String s : random) {
result += s;
}
return result;
}
メッソド呼び出し
system.debug(getRandomString(6))
メッソド呼び出し結果
例えば、abcdef