I thought I was a genius coming up with RANDOMIZE TIMER() but turns out people have been using it for years

Try setting RANDOMIZE with an integer and you'll see you get the same random numbers every time you run the program! I think editing your code changes it though for some reason.
@QuirkyJim
Do you mean you want to add a random element to your combat?
adding a random number to a static number will give you a "biased" random number.
Here's the beginnings of a combat system, I wrote it very quickly so it's a bit cruddy but shows how you can use random numbers and different attributes in combat.
`*********************
` Whirlwind Adventure
`*********************
gosub _data
m= rnd(2)+1 : `pick random monster
Repeat
gosub Get_Hero_Action
gosub Get_Monster_Action
gosub Analyse_Actions
wait key : cls
Until hero_health=0 or monster_health(m)=0
if hero_health=0 then print "You died! GAME OVER..." else print "You defeated the monster! Hurrah!! :P"
wait key
END
`---------
` Gosubs
`---------
Analyse_Actions:
print
print "You ";action$(hero_action);", the ";monster_name$(m);" ";action$(monster_action);"s."
Select hero_action
Case 1
if monster_action=1
if monster_attack(m)+rnd(10) > hero_attack+rnd(10)
dec hero_health, (rnd(20)+ monster_attack(m) + monster_speed(m) - hero_attack - hero_speed)/hero_vitality
else
dec monster_health(m), (rnd(20)+ hero_attack + hero_speed - monster_attack(m) - monster_speed(m))/monster_vitality(m)
endif
endif
Endcase
Case Default : print "Haven't coded this outcome yet!" : Endcase
EndSelect
Return
_data:
`hero data
hero_attack= 10
hero_defence= 12
hero_speed= 14
hero_vitality= 8
hero_health= 100
`monster data
max_monsters= 4
Dim monster_name$(max_monsters)
Dim monster_attack(max_monsters)
Dim monster_defence(max_monsters)
Dim monster_speed(max_monsters)
Dim monster_vitality(max_monsters)
Dim monster_health(max_monsters)
for x= 1 to max_monsters
read monster_name$(x)
read monster_attack(x)
read monster_defence(x)
read monster_speed(x)
read monster_vitality(x)
monster_health(x)= 100
next x
`Action strings
Dim action$(3)
action$(1)= "attack"
action$(2)= "defend"
action$(3)= "dodge"
Return
`//
Get_Hero_Action:
Repeat
cls
print "You face a terrifying " ; monster_name$(m) ; "!"
print "Your Health: "; hero_health
print monster_name$(m);" Health: "; monster_health(m)
print "What will you do?"
print "[A] Attack"
print "[B] Defend"
print "[C] Dodge"
input act$
`store action as integer
hero_action= ASC(upper$(act$))-64
Until ABS(hero_action-2)<=1
Return
`//
Get_Monster_Action:
think_attack= monster_attack(m) - hero_defence + rnd(40)
think_defend= monster_defence(m) + hero_attack - rnd(40)
think_dodge= monster_speed(m) - hero_speed + rnd(40)
if think_attack > think_defend
if think_attack > think_dodge
monster_action= 1
else
monster_action= 3
endif
else
if think_defend > think_dodge
monster_action= 2
else
monster_action= 3
endif
endif
Return
`//
`-------
` Data
`-------
`monster data
data "Cerberus",25,16,18,32 :`Three-Headed Dog
data "Kraken",10,28,29,9 :`Giant Octopus
data "Leviathan",31,6,45,16 :`Sea Dragon
data "Griffon",20,12,16,40 :`Half-Eagle Half-Lion
Oh it also shows that you need RANDOMIZE unless you want to fight the Leviathan all day!
A small program that works is better than a large one that doesn't.

DBC Challenge Rank:
Rookie