randomize のデフォルト値は WinAPI の GetTickCount の戻り値を利用しているみたいです。
以下がその確認プログラム。環境により異なる可能性もあるので確認してみてください。
#uselib "winmm.dll"
#cfunc global timeGetTime "timeGetTime"
#func global timeBeginPeriod "timeBeginPeriod" int
#func global timeEndPeriod "timeEndPeriod" int
#uselib "kernel32.dll"
#cfunc global GetTickCount "GetTickCount"
#module
#defcfunc getDefault
return GetTickCount()
;return timeGetTime()
; テストに利用するタイマを有効する
; Windows にはもうひとつくらいタイマがあった気がするけど割愛
#global
mes "確認しています"
repeat 1000
; 予想されるデフォルト値を取得する
t = getDefault()
; デフォルト値で初期化した乱数を取得する
randomize
a = rnd(10000)
; 予想されるデフォルト値で初期化した乱数を取得する
randomize t
b = rnd(10000)
; 両者を比較して相違が無い事を確認する
if (a != b) : break
wait 1
loop
if (a == b) {
mes "■予想は(おそらく)当たりました"
} else {
mes "■予想は外れました"
}
mes "確認終了"
stop
テスト回数が 1000 回と少なく結果の信憑性に不安を覚えますが、これは wait 1 によって処理時間が膨大になる事を避けるためです。(現状でも 10 秒程度掛かります)
ちなみに wait を入れているのは、タイマの精度は 10 ms 程度であるため、これ以上速くしたところでタイマ値は変わらず意味が無いからです。
timeGetTime の精度は timeBeginPeriod/timeEndPeriod で変更出来ますが、変更せずとも randomize のデフォルト値でない事が確認出来たので敢えてしていません。
しかし、たとえ予想が合っていたとしても GetTickCount の戻り値を randomize のデフォルト値と仮定してプログラミングするのはあまりオススメ出来ません。
HSP のドキュメントでは、randomize のデフォルト値が Windows タイマを使用している事を明言していても、GetTickCount を使用しているとは言っていません。
この事はいつでもデフォルト値を設定する Windows タイマを変更できるという意味です。その環境に最適なタイマを選択するような実装になっている可能性は充分ありますし、もしかしたら次のバージョンでは timeGetTime 固定に変わっているかもしれません。
むしろ、randomize で乱数の種を設定できるのですから、自分で GetTickCount や timeGetTime などのタイマを使って randomize に設定してやる方法の方が安全で確実です。
おそらくは乱数列の再現をする目的でデフォルト値を知りたいという事でしょうから、こちらの方法をオススメします。
seed = GetTickCount() ; 保存しておけば後から何度でも再現出来る
randomize seed ; これなら randomize がデフォルト値の設定に何を使っていようが関係ない