var dic = %[
苗字接頭:['東','西','南','北','大','山','石','森','金','黒'], // 10
苗字接尾:['田','口','山','村','野','川','園','浜','井','本','木','崎','森','小路' ], // 14
苗字単体:['勅使河原'], // 接頭+接尾でなく単体で抽出される苗字
男名前単体:['しんのすけ'],
男名前接頭:['将','翔','優','正','健','良'], // 6
男名前接尾:['男','雄','太','一','助','人'], // 6
女名前単体:['ルイズ'],
女名前接頭:['雪','夏','秋','春','愛','優'], // 6
女名前接尾:['子','絵','奈','華','美',''], // 6
];
function getRandomName( dic, ch = '苗字' ) {
var r = function( arr ) { return arr[ intrandom(arr.count-1) ]; }; // 配列からランダムで要素抽出
if( !intrandom(49) ) return r(dic[ch+'単体']); // 1/50で単体の配列から抽出
for(;;) {
var c0 = r(dic[ch+'接頭']);
var c1 = r(dic[ch+'接尾']);
if( c0 == c1 ) continue; // 山山とか接頭接尾が被る苗字はNG
var nm = c0+c1;
return nm;
}
}
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'男名前') );
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'女名前') );
Debug.console.visible = true;
// これで、10(苗字接頭)*14(苗字接尾)*6(名前接頭)*6(名前接尾)*2(男女)=10080個(単体は除く)
// 配列の充実化は自分で頑張れ