I see.So it can be fixed by simply adding the first line before the second :\CHOOSERANDOM{""}\CHOOSERANDOM{"Maths", "Physics", "Algebra", "Analysis", "Chemistry", "Geometry", "Wave equation", "Schrödinger equation"}Thanks, that fixes one of my problems ! Mathieu > Date: Wed, 8 Jun 2011 19:07:50 +0200 > From: pragma@wxs.nl > To: ntg-context@ntg.nl > CC: mathieudupont@hotmail.com > Subject: Re: [NTG-context] Random selection of a word in a set with lua and mkiv > > On 8-6-2011 7:00, Mathieu Dupont wrote: > > > > > > This following code works, except that the first random is always the same (Analysis) for some reason. > > Anyone knows why ? > > \enableregime[il1]\starttext\startluacode userdata = userdata or {} math.randomseed( os.time() ) function userdata.random(...) context(arg[math.random(1, #arg)]) end\stopluacode\def\CHOOSERANDOM#1{\ctxlua{userdata.random(#1)}}\dorecurse{10}{\CHOOSERANDOM{"Maths", "Physics", "Algebra", "Analysis", "Chemistry", "Geometry", "Wave equation", "Schrödinger equation"}\par}\stoptext > > Because context remembers the seed (is reported in the log). Delete the > tuc file and you will get another value. We could get oscillation > otherwise. > > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com > | www.pragma-pod.nl > -----------------------------------------------------------------