
 math.random not so random?
I'm working on a script that chooses a random number between 1 to 4 and then does something based on that value. The issue is that I get the same values in the same order very time. For example, the game will give values 4, 2, 2, 3 in that order etc... Not quite sure what I can do to solve this issue.
Here's some code to look at. I've changed some variable names and other things so as to not give away any details at this point of what I'm working on.
Code:
function Activity:ValueSelect()
   self.Value = math.random(1,4)
   
   if self.Value == 1 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable1
   elseif self.Value == 2 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable2
   elseif self.Value == 3 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable3
   elseif self.Value == 4 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable4
   end   
end   
EDIT: Okay now it works. Solution is to use math.randomseed()) to generate a random seed for the function to use when generating numbers. My solution is to check a timer then pop off a random number before generating a number for the function. This works reliably.
Code:
function Activity:ValueSelect()
   math.randomseed(self.MissionTimer:LeftTillSimMS(8))                 --we generate the seed here
   math.random();                                            --pop off a number to ensure randomness
   self.Value = math.random(1,4)                                          --generate numbers for our function.
   
   if self.Value == 1 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable1
   elseif self.Value == 2 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable2
   elseif self.Value == 3 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable3
   elseif self.Value == 4 then
      self.NextValue = stuff
      self.CurrentValue = self.Variable4
   end   
end