<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hi Dan,</p>
    <p>On 3/28/19 9:24 PM, Dan Morphis wrote:</p>
    <blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">why do you want an interval so low</div>
        </div>
      </div>
    </blockquote>
    <p>Just for testing, I plan to put 1 hour +/- 20% in production.<br>
    </p>
    <blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">why do you want a random interval? Load?</div>
        </div>
      </div>
    </blockquote>
    <p>Yes</p>
    <blockquote type="cite"
cite="mid:CAHwrMLctxCDX__3_4S9e4nEa-uxp0oEs1FdpYUcqEFR4izGDjw@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <div>Looking through sandbox.js we see this:</div>
            <div><br>
            </div>
            <div>
              <div><font face="monospace, monospace">// Monkey-patch
                  Math.random() to make it deterministic</font></div>
              <div><font face="monospace, monospace">context.random =
                  random;</font></div>
              <div><font face="monospace, monospace">vm.runInContext("Math.random
                  = random;", context);</font></div>
              <div><font face="monospace, monospace">delete
                  context.random;</font></div>
            </div>
            <div><br>
            </div>
            <div>And random is defined as:</div>
            <div>
              <div><font face="monospace, monospace">function random() {</font></div>
              <div><font face="monospace, monospace">  if (!state.rng)</font></div>
              <div><font face="monospace, monospace">    state.rng =
                  seedrandom(state.sessionContext.deviceId);</font></div>
              <div><font face="monospace, monospace"><br>
                </font></div>
              <div><font face="monospace, monospace">  return
                  state.rng();</font></div>
              <div><font face="monospace, monospace">}</font></div>
              <div><font face="monospace, monospace"><br>
                </font></div>
              <div><font face="monospace, monospace">random.seed =
                  function(s) {</font></div>
              <div><font face="monospace, monospace">  state.rng =
                  seedrandom(s);</font></div>
              <div><font face="monospace, monospace">}</font></div>
            </div>
            <div><font face="monospace, monospace"><br>
              </font></div>
            <div><font face="monospace, monospace">This means for that
                particular device id, you will always get the same
                "random" value</font></div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Ah, clear.  That means, it doesn't make any sense to bind this
      provision to a preset which executes on "2 PERIODIC". I would tag
      a device as soon as a "random" value is set for the first time and
      skip tagged devices later. Does it sounds reasonable? If yes, this
      kind of "random" number will work for me.<br>
    </p>
    <p>What if I need really random value in my provision? Any other
      way?</p>
    <p>Thanks,</p>
    <p>George Chelidze</p>
  </body>
</html>