figures); if ($total === false || ($min * $number > $total)) { for ($i = 0; $i < $number; $i++) { $dices[] = $this->figures[array_rand($this->figures)]; } } else { $max = max($this->figures); for ($i = 0; $i < $number; $i++) { $dices[] = $min; } while (array_sum($dices) < $total) { $key = array_rand($dices); if ($dices[$key] < $max) { $dices[$key]++; } } } return $dices; } }