とりあえずこのような形にしてみましたが、どうでしょうか。
title "LEDルーレット" ;タイトルの設定
#include "hspusbio.as" ;hspusbio プラグイン組み込み
;------------------ 変数等初期化 -------------------------------
randomize ;乱数発生の初期化
wait_c=500 ;待ち時間の設定(1=0.01s)
dim x,12 ;ボタンのX座標配列
dim y,12 ;ボタンのY座標配列
screen 0,400,300 ;画面の大きさを設定
x(5)=190 : y(5)=80 //配列は1スタートではなく0スタートなので修正
x(4)=220 : y(4)=89
x(3)=242 : y(3)=109
x(2)=250 : y(2)=140
x(1)=242 : y(1)=171
x(0)=220 : y(0)=191
x(11)=190 : y(11)=200
x(10)=159 : y(10)=191
x(9)=139 : y(9)=171
x(8)=130 : y(8)=140
x(7)=139 : y(7)=109
x(6)=159 : y(6)=89
;------------------ 点滅終了 -------------------------------
pos 350,270
objsize 45,25
button "終了", *eend
*disp
port=0 : gosub *test
stop
*test
w_time=4 //xという変数名はすでに配列xとして使っているので、他の変数名に変える
objsize 20,20
p=rnd(12) //ルーレットが点灯している位置。初期位置をランダムに決める。
repeat 12*6+rnd(12) //ルーレットをこのコマだけ進める。最低6周させたあと、何コマ進むかはランダム。
if cnt>0 { //最初のループではここの処理は行わない。
clrobj b_id,b_id
p=(p+1)\12 //pの値は0~11でループさせる
if cnt\12=0 : w_time+=3 //ルーレットが1周するごとに待ち時間を増やす
}
byte=1<<p //この計算でbyteの値は求まる
pos x(p),y(p) : button "●", *eend
b_id=stat //今後ボタンを増やした時に備え、ボタンIDは1に決め打ちせず、都度取得する
wait w_time
loop
return
*eend
end