 
  
  ...
'@\[\+rand\(([0-9]+)-([0-9]+)\)\+\]@si' => rand(intval("$1"), intval("$2")),
...
 
  
  echo preg_replace_callback(
  '@\[\+rand\(([0-9]+)-([0-9]+)\)\+\]@si' ,
  function($m){return rand(intval($m[1]), intval($m[2]));},
  'test [+rand(4-10)+] test');