var %r = $rand(1,2), %t
%t = $iif(%r == 1,trivia1.txt,trivia2.txt)
set %trivia.rand $rand(1,$lines(%t))
set %trivia.n $read(%t,%trivia.rand)
set %trivia.q $gettok($read(%t,%trivia.rand),1,42)
set %trivia.a $gettok($read(%t,%trivia.rand),2,42)
This is with just two texts. If you have more than two you want to randomly choose, you can say ...
var %r = $rand(1,2), %t
if (%r == 1) %t = text1.txt
elseif (%r == 2) %t = text2.txt
elseif (%r == 3) %t = text3.txt
etc.
Or if there is a bunch you can even make a custom identifier to do all this for you.
alias ran_triv {
var %r = $rand(1,5)
if (%r == 1) return text1.txt
elseif (%r == 2) return text2.txt
elseif (%r == 3) return text3.txt
elseif (%r == 4) return text4.txt
elseif (%r == 5) return text5.txt
}
then in your code you would say ...
var %t = $ran_triv
set %trivia.rand $rand(1,$lines(%t))
set %trivia.n $read(%t,%trivia.rand)
set %trivia.q $gettok($read(%t,%trivia.rand),1,42)
set %trivia.a $gettok($read(%t,%trivia.rand),2,42)
or this custom identifier if the files are all named trivia(number).txt. Like trivia1.txt trivia2.txt etc.
alias ran_triv {
var %r = $rand(1,5)
return $+(trivia,%r,.txt)
}