RANDOMランダム関数

本ページには広告が含まれています。

0以上Range未満の範囲にある乱数(整数)を返します。引数を省略した場合は、0以上1未満の乱数(有効数字15桁)を返します。

構文
  1. return = RANDOM( Range )
引数
Range (Integer)省略可
数値
戻り値
0 <= X < Rangeの範囲にある乱数を返す

使い方

0以上10のN乗未満の整数を返す

UWSC
PRINT RANDOM(POWER(10, N))
UWSC
PRINT INT(RANDOM() * POWER(10, N))

M以上N未満の整数を返す

UWSC
PRINT M + RANDOM(N - M)

M以上N以下の整数を返す

UWSC
PRINT M + RANDOM(N - M + 1)
ランダムな小数

ランダムな小数を取得したい場合は、整数を取得してから全体を1/10, 1/100などのようにして小数点の位置をずらします。

以下の例は、15以上23以下で取得してから1/10して1.5以上2.3以下を取得する例。

UWSC
PRINT (15 + RANDOM(23 - 15 + 1)) / 10

N桁の整数を返す

M以上N未満の整数の応用です。

UWSC
PRINT POWER(10, N - 1) + RANDOM(POWER(10, N) - POWER(10, N - 1))
3桁

100以上1000未満の範囲。

UWSC
PRINT 100 + RANDOM(1000 - 100)
4桁

1000以上10000未満の範囲。

UWSC
PRINT 1000 + RANDOM(10000 - 1000)
5桁

10000以上100000未満の範囲。

UWSC
PRINT 10000 + RANDOM(100000 - 10000)

取得したランダム値の範囲を確認

以下は「RANDOM(10)」が取りうる範囲を調べるプログラムです。

RANDOM関数で取得したランダム値を100回取得しすべて配列に格納して、その最小値と最大値を取得しています。RANDOM(10)は0〜9と範囲が狭いのでとりあえず100回にしてますが、ランダム値の取る範囲に応じて回数を増減させる必要があります。

これを実行して想定していない範囲外の値が出るようであれば、間違っているということがわかります。

UWSC
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個生成します。

結果は実行する度に変わります。

UWSC
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個生成

UWSC
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)の範囲でランダムに取得し、それを文字に変換する。

UWSC
PRINT CHR(65 + RANDOM(90 - 65 + 1))
使用関数

ランダムな数値を返す

0以上10未満のランダムな数値を返す。

UWSC
PRINT RANDOM(10)
結果
プレーンテキスト
5
使用関数

特定の値を除くランダム値を取得

1行目の配列に取得しない値を格納した配列、5行目のRANDOMの引数が取得するランダム値の範囲、今回の場合0~19の範囲です。8行目のLENGTH関数でランダム値を格納した配列のサイズを取得し、10個になったら終了。

UWSC
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
使用関数

ランダムに氏名を生成

UWSC
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未満の乱数を返す

UWSC
PRINT RANDOM()
結果
プレーンテキスト
0.146521859802306
使用関数

マウスカーソルをランダムな位置に移動

UWSC
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関数 (スクリプト関数)
引数の逆正弦を求めます。