本ページには広告が含まれています。
目次
0以上Range未満の範囲にある乱数(整数)を返します。引数を省略した場合は、0以上1未満の乱数(有効数字15桁)を返します。
- 構文
- return = RANDOM( Range )
- 引数
- Range (Integer)省略可
- 数値
- 戻り値
- 0 <= X < Rangeの範囲にある乱数を返す
使い方
0以上10のN乗未満の整数を返す
PRINT RANDOM(POWER(10, N))
PRINT INT(RANDOM() * POWER(10, N))
M以上N未満の整数を返す
PRINT M + RANDOM(N - M)
M以上N以下の整数を返す
PRINT M + RANDOM(N - M + 1)
ランダムな小数
ランダムな小数を取得したい場合は、整数を取得してから全体を1/10, 1/100などのようにして小数点の位置をずらします。
以下の例は、15以上23以下で取得してから1/10して1.5以上2.3以下を取得する例。
PRINT (15 + RANDOM(23 - 15 + 1)) / 10
N桁の整数を返す
M以上N未満の整数の応用です。
PRINT POWER(10, N - 1) + RANDOM(POWER(10, N) - POWER(10, N - 1))
3桁
100以上1000未満の範囲。
PRINT 100 + RANDOM(1000 - 100)
4桁
1000以上10000未満の範囲。
PRINT 1000 + RANDOM(10000 - 1000)
5桁
10000以上100000未満の範囲。
PRINT 10000 + RANDOM(100000 - 10000)
取得したランダム値の範囲を確認
以下は「RANDOM(10)」が取りうる範囲を調べるプログラムです。
RANDOM関数で取得したランダム値を100回取得しすべて配列に格納して、その最小値と最大値を取得しています。RANDOM(10)は0〜9と範囲が狭いのでとりあえず100回にしてますが、ランダム値の取る範囲に応じて回数を増減させる必要があります。
これを実行して想定していない範囲外の値が出るようであれば、間違っているということがわかります。
DIM array[-1]
FOR i = 1 TO 100
arrayPush(array, RANDOM(10))
NEXT
PRINT "最小値:" + CALCARRAY(array, CALC_MIN)
PRINT "最大値:" + CALCARRAY(array, CALC_MAX)
- 結果
最小値:0 最大値:9
プログラム実行例
パスワードを生成
パスワードを10個生成します。
結果は実行する度に変わります。
REPEAT
res = INPUT("何桁のパスワード?")
IF res = EMPTY THEN EXIT
UNTIL CHKNUM(res)
FOR num = 0 TO 10
DIM password = ""
FOR n = 0 TO res
SELECT RANDOM(3)
CASE 0
password = password + CHR(RANDOM(10) + 48)
CASE 1
password = password + CHR(RANDOM(26) + 65)
CASE 2
password = password + CHR(RANDOM(26) + 97)
SELEND
NEXT
PRINT password
NEXT
結果
D659nv9Z6Q1t1MXjXfPUMMe35r012a639
XsQg7139wsUWF2q764f9AiopT451aULBC
A8a2t7Iq0Tl7Ij3W4p5RmQ97ElwvkWeG4
u8RTBF1aDt365Y436XC09Uo5X9kWHc4dS
AeCg2uNoUrCR9FsjYHtdhHg2bB6S92NhY
3eR4l89x7WGf1SZTlpDcIbBc25IbEgk4a
nuT94OR530poRBt9s0wF1b275qAfGDOHa
KTRa7wmEHjab2MopiT8u3aPwI6ntWmMt5
Bz626hGf9GS6yeZQyHrIAbEk1N0fs1ZL5
6Nze7rld3Rmd0tU0Y6kgP1AUwab0bjQlR
11C0x8862eOP1AVjVlXz7rEl4nKkR91Hf
使用関数
ランダムなサイズのファイルを10個生成
FOR i = 0 TO 10
DIM cmd = "CD C:\Users\Owner\Desktop\Folder & fsutil file createnew textfile%val%.txt " + RANDOM(POWER(10, 5))
PRINT DOSCMD(REPLACE(cmd, "%val%", i))
NEXT
使用関数
アルファベットの大文字(A〜Z)でランダムに1文字取得
文字コードを65〜90(A〜Z)の範囲でランダムに取得し、それを文字に変換する。
PRINT CHR(65 + RANDOM(90 - 65 + 1))
使用関数
ランダムな数値を返す
0以上10未満のランダムな数値を返す。
PRINT RANDOM(10)
結果
5
使用関数
特定の値を除くランダム値を取得
1行目の配列に取得しない値を格納した配列、5行目のRANDOMの引数が取得するランダム値の範囲、今回の場合0~19の範囲です。8行目のLENGTH関数でランダム値を格納した配列のサイズを取得し、10個になったら終了。
DIM exclude[] = 0, 5, 8, 9, 14, 15
DIM array[-1]
WHILE TRUE
DIM n = RANDOM(20)
IF inArray(n, exclude) THEN CONTINUE
arrayPush(array, n)
IF LENGTH(array) = 10 THEN BREAK
WEND
FOR item IN array
PRINT item
NEXT
結果
16
17
18
11
3
17
11
10
3
12
使用関数
ランダムに氏名を生成
DIM lastName[] = "佐藤", "鈴木", "高橋", "田中", "伊藤", "渡辺", "山本", "中村", "小林", "加藤", _
"吉田", "山田", "佐々木", "山口", "松本", "井上", "木村", "林", "斎藤", "清水", _
"山崎", "森", "池田", "橋本", "阿部", "石川", "山下", "中島", "石井", "小川", _
"前田", "岡田", "長谷川", "藤田", "後藤", "近藤", "村上", "遠藤", "青木", "坂本", _
"斉藤", "福田", "太田", "西村", "藤井", "金子", "岡本", "藤原", "中野", "三浦", _
"原田", "中川", "松田", "竹内", "小野", "田村", "中山", "和田", "石田", "森田", _
"上田", "原", "内田", "柴田", "酒井", "宮崎", "横山", "高木", "安藤", "宮本", _
"大野", "小島", "谷口", "今井", "工藤", "高田", "増田", "丸山", "杉山", "村田", _
"大塚", "新井", "小山", "平野", "藤本", "河野", "上野", "野口", "武田", "松井", _
"千葉", "岩崎", "菅原", "木下", "久保", "佐野", "野村", "松尾", "市川", "菊地", _
"杉本", "古川", "島田", "大西", "水野", "桜井", "高野", "吉川", "渡部", "山内", _
"飯田", "西田", "菊池", "西川", "小松", "北村", "安田", "五十嵐", "川口", "関", _
"平田", "中田", "久保田", "服部", "東", "岩田", "土屋", "川崎", "福島", "本田", _
"辻", "樋口", "秋山", "永井", "田口", "山中", "中西", "吉村", "川上", "石原", _
"大橋", "松岡", "馬場", "浜田", "森本", "星野", "浅野", "矢野", "大久保", "松下", _
"小池", "吉岡", "野田", "荒木", "大谷", "内藤", "松浦", "熊谷", "黒田", "尾崎", _
"永田", "望月", "川村", "田辺", "荒井", "松村", "堀", "大島", "早川", "平井", _
"栗原", "菅野", "西山", "広瀬", "横田", "石橋", "萩原", "岩本", "片山", "関口", _
"宮田", "大石", "高山", "吉野", "本間", "須藤", "岡崎", "小田", "伊東", "鎌田", _
"上原", "篠原", "小西", "松原", "福井", "古賀", "小泉", "大森", "成田", "南", _
"奥村", "内山", "川島", "沢田", "桑原", "三宅", "片岡", "杉浦", "富田", "岡", _
"八木", "奥田", "小沢", "松永", "北川", "関根", "河合", "平山", "牧野", "白石", _
"今村", "寺田", "青山", "中尾", "小倉", "渋谷", "上村", "小野寺", "大山", "足立", _
"岡村", "坂口", "天野", "多田", "佐久間", "根本", "豊田", "田島", "飯塚", "角田", _
"村山", "武藤", "白井", "西", "竹田", "宮下", "榎本", "塚本", "神谷", "坂田", _
"水谷", "児玉", "坂井", "齋藤", "浅井", "小原", "岡部", "森下", "神田", "小笠原", _
"中井", "植田", "河村", "宮川", "稲垣", "前川", "大川", "松崎", "長田", "若林", _
"飯島", "谷", "大沢", "石塚", "安部", "堀内", "及川", "田代", "中嶋", "江口", _
"山根", "中谷", "岸本", "荒川", "本多", "西尾", "森山", "岡野", "金井", "細川", _
"今野", "戸田", "稲葉", "安達", "津田", "森川", "落合", "土井", "村松", "星", _
"町田", "三上", "畠山", "岩井", "長尾", "堤", "中原", "野崎", "中沢", "金田", _
"米田", "松山", "杉田", "堀田", "西野", "三好", "山岸", "佐伯", "黒川", "西岡", _
"大竹", "泉", "甲斐", "大木", "笠原", "堀江", "岸", "川田", "徳永", "須田", _
"黒木", "山川", "古田", "榊原", "梅田", "新田", "三木", "野中", "大城", "村井", _
"金城", "奥山", "土田", "滝沢", "大村", "川端", "井口", "梶原", "大場", "宮城", _
"比嘉", "長島", "吉原", "宮内", "金沢", "安井", "庄司", "大内", "茂木", "荻野", _
"日高", "松島", "向井", "下田", "塚田", "石黒", "西本", "奥野", "竹中", "広田", _
"嶋田", "栗田", "藤川", "福本", "北野", "藤野", "宇野", "川原", "丹羽", "谷川", _
"小谷", "青柳", "吉本", "藤岡", "竹下", "竹本", "古谷", "緒方", "藤村", "平川", _
"亀井", "高島", "三輪", "篠崎", "藤沢", "窪田", "宮原", "根岸", "高井", "下村", _
"高瀬", "山村", "川本", "柳沢", "小澤", "横井", "吉沢", "出口", "武井", "小森", _
"竹村", "長野", "宮沢", "志村", "平松", "臼井", "福岡", "黒沢", "溝口", "田原", _
"稲田", "浅田", "筒井", "柳田", "奧村", "永野", "大原", "冨田", "林田", "瀬戸", _
"大平", "手塚", "入江", "篠田", "福永", "北原", "富永", "矢島", "小出", "湯浅", _
"鶴田", "沼田", "高松", "堀口", "長岡", "岩瀬", "山岡", "大田", "石崎", "澤田", _
"大槻", "石山", "池上", "堀川", "二宮", "相馬", "園田", "柏木", "島崎", "奧田", _
"平岡", "花田", "杉原", "加納", "村瀬", "川野", "内海", "片桐", "長沢", "倉田", _
"野沢", "河原", "福原", "秋元", "越智", "西原", "松野", "笠井", "小坂", "田畑", _
"北島", "渡邊", "日野", "谷本", "千田", "吉井", "深沢", "西沢", "相沢", "徳田", _
"原口", "小柳", "米山", "細谷", "新谷", "田上", "今泉", "菅", "浜野", "森岡"
DIM boys[] = "葵", "一輝", "一樹", "瑛太", "英樹", "海", "海斗", "海翔", "学", "貴大", _
"輝", "空", "勲", "結翔", "健", "健一", "健太", "健太郎", "康平", "弘", _
"浩", "浩一", "浩二", "浩之", "剛", "実", "樹", "修", "秀樹", "駿", _
"淳", "勝", "勝利", "匠", "昇", "新", "進", "崇", "正", "清", _
"誠", "聡", "蒼", "蒼空", "太一", "太陽", "大雅", "大介", "大貴", "大輝", _
"大樹", "大地", "大輔", "大和", "大翔", "拓海", "拓哉", "拓也", "達也", "智也", _
"朝陽", "直樹", "直人", "哲也", "徹", "博", "博之", "楓太", "勉", "歩夢", _
"豊", "湊", "稔", "明", "茂", "優", "優太", "優斗", "勇", "悠", _
"悠希", "悠真", "悠人", "悠太", "悠斗", "悠翔", "祐介", "裕太", "雄太", "雄大", _
"洋平", "陽向", "陽太", "陽大", "陽斗", "陽翔", "翼", "陸", "陸斗", "律", _
"隆", "竜", "竜也", "龍生", "亮", "亮太", "凌", "涼太", "諒", "蓮", _
"和彦", "和夫", "和也", "翔", "翔太", "翔平", "颯", "颯真", "颯太"
DIM girls[] = "あゆみ", "さくら", "ひなた", "めぐみ", "ゆかり", "亜美", "愛", "愛菜", "愛美", "愛莉", _
"葵", "茜", "綾乃", "杏", "杏奈", "悦子", "佳奈", "花", "花音", "芽依", _
"絵美", "久美子", "京子", "琴音", "啓子", "恵", "恵子", "恵美", "恵美子", "結愛", _
"結衣", "結月", "結菜", "幸子", "弘子", "浩子", "香織", "沙織", "彩", "彩夏", _
"彩花", "彩香", "彩乃", "菜月", "菜々子", "菜摘", "咲良", "桜", "詩", "詩織", _
"七海", "純子", "順子", "勝子", "信子", "心愛", "心結", "心咲", "心春", "心優", _
"真央", "真由", "真由美", "成美", "節子", "千夏", "千尋", "早紀", "太陽", "大和", _
"智子", "智美", "直子", "直美", "紬", "典子", "桃花", "桃子", "瞳", "奈々", _
"美羽", "美紀", "美結", "美月", "美香", "美咲", "美桜", "美代子", "美智子", "美穂", _
"美優", "百花", "舞", "楓", "萌", "麻衣", "麻衣子", "麻美", "未来", "明日香", _
"明美", "唯", "優衣", "優花", "優子", "優太", "優奈", "友美", "由佳", "由美", _
"由美子", "裕子", "裕美", "洋子", "遥", "陽葵", "陽菜", "陽子", "理恵", "里奈", _
"玲奈", "和子", "凛", "澪", "翔太", "莉子", "莉奈", "遙香", "凜"
//DIM boys[] = "碧", "陽翔", "蒼", "朝陽", "蓮", "湊", "結翔", "悠真", "陽向", "樹", "律", "暖", "大翔", "颯真", "大和", "凪", "蒼空", "伊織", "湊斗", "陽", "琉生", "朔", "颯", "晴", "陽大", "陽斗", "陽太", "新", "碧人", "蒼大", "陸", "悠", "旭", "悠人", "結斗", "碧斗", "蒼真", "大雅", "悠翔", "奏汰", "岳", "颯太", "湊翔", "悠斗", "大晴", "晴翔", "葵", "律希", "悠生", "一颯", "怜", "奏翔", "琥太郎", "颯人", "海翔", "絢斗", "楓", "櫂", "蒼生", "楓真", "海斗", "陸斗", "奏太", "仁", "大河", "湊大", "蒼翔", "柊", "善", "翔", "颯汰", "奏多", "颯斗", "壮真", "凌久", "千颯", "怜央", "遥斗", "空", "理人", "歩", "迅", "虎太郎", "結仁", "光希", "千隼", "悠陽", "大智", "伊吹", "瑛太", "蒼士", "理仁", "結人", "湊音", "奏斗", "陽葵", "凌空", "理玖", "想", "響", "蒼太"
//DIM girls[] = "陽葵", "凛", "結菜", "芽依", "詩", "陽菜", "葵", "莉子", "紬", "咲茉", "結愛", "澪", "結月", "杏", "咲良", "翠", "琴葉", "結衣", "彩葉", "心春", "美桜", "凪", "柚葉", "心陽", "莉緒", "莉央", "朱莉", "美月", "凜", "さくら", "凪咲", "心結", "芽生", "依茉", "杏奈", "陽菜乃", "紗奈", "光莉", "楓", "愛茉", "紗菜", "花", "蘭", "陽咲", "一華", "花音", "ひなた", "紬希", "琴音", "莉愛", "風花", "一花", "心晴", "柚希", "美結", "和花", "詩乃", "凪紗", "乃愛", "茉白", "鈴", "百花", "結", "雫", "碧", "ひかり", "結葵", "桜", "あかり", "柚乃", "紗良", "愛莉", "咲那", "明莉", "結心", "菜月", "永茉", "七海", "葵衣", "愛菜", "絃葉", "咲希", "ひまり", "すず", "菫", "彩羽", "美羽", "渚", "玲奈", "結乃", "紬葵", "柚月", "柚羽", "六花", "恵茉", "絃", "ひより", "実桜", "梨乃", "華"
FOR i = 1 TO 20
PRINT arrayRand(lastName) + " " + IIF(RANDOM(2)=0, arrayRand(boys), arrayRand(girls))
NEXT
結果
中井 勉
大森 豊
福島 健太郎
辻 純子
酒井 萌
小田 拓海
山村 綾乃
西原 百花
奥田 優子
中田 和子
大村 啓子
永井 優子
下田 大貴
平井 大翔
藤沢 美結
松永 翔平
宇野 直樹
内藤 駿
中尾 竜也
江口 ひなた
使用関数
0以上1未満の乱数を返す
PRINT RANDOM()
結果
0.146521859802306
使用関数
マウスカーソルをランダムな位置に移動
DIM x = G_SCREEN_W
DIM y = G_SCREEN_H
MMV(RANDOM(x), RANDOM(y))
使用関数
関連記事
- ABS関数 (スクリプト関数)
- 引数の絶対値を求めます。
- ARCCOS関数 (スクリプト関数)
- 引数の逆余弦を求めます。
- CEIL関数 (スクリプト関数)
- 正の方向へ切り上げた数値を返します。
- LN関数 (スクリプト関数)
- 自然対数を求めます。
- LOGN関数 (スクリプト関数)
- 常用対数を求めます。
- ZCUT関数 (スクリプト関数)
- マイナス値を0にして返します。プラス値はそのままの値を返します。
- isOdd関数 (自作関数)
- 奇数かどうか調べます。
- radToDeg関数 (自作関数)
- 弧度法から度数法に変換します。
- degToRad関数 (自作関数)
- 度数法から弧度法に変換します。
- ARCSIN関数 (スクリプト関数)
- 引数の逆正弦を求めます。