<?php /** * Created by PhpStorm. * User: Mike * Date: 28.05.14 * Time: 09:15 */ class SeededRandom { var $RSeed = 0; function seed($s = 0) { $this->RSeed = abs(intval($s)) % 9999999 + 1; $this->get(); } function seedWithDailySeed() { $this->seed($this->getDailySeed()); } function get($min = 0, $max = 9999999) { if ($this->RSeed == 0) $this->seed(mt_rand()); $this->RSeed = ($this->RSeed * 125) % 2796203; return $this->RSeed % ($max - $min + 1) + $min; } function getRandomElement(array $arr) { return $arr[$this->get(0, count($arr))]; } function getDailySeed() { $now = getdate(); return ($now['year'] % 100) * 366 + $now['yday']; } }