Pedro Castro wrote:random
This command is specific to GNU Chess 4. You can either ignore it completely (that is, treat it as a no-op) or implement it as GNU Chess does. The command toggles "random" mode (that is, it sets random = !random). In random mode, the engine adds a small random value to its evaluation function to vary its play. The "new" command sets random mode off.
I think that you play your best move, you're only very slightly to change the evaluation (random), with a slight change is possible that games are no longer the same.
In addition it must be borne in mind that generally the evaluations are not perfect and that little change is not going to do better or worse, simply making the game variable.
Well, I don't kow what they mean by 'specific to GNU Chess 4'. That GNU Chess 5 happened not to implement it? They can certainly not mean that no other engine than GNU Chess 4 does implement it, as they cannot know it, and it is indeed not true, as Joker does implement it. And they even suggest that other engines should implement it the same way, so it cannot be a complete surprise that there are other engines that implement it. Aren't all WB commands 'specific to GNU Chess'? For almost any command you can find engines that do not implement it. And most engines implement most WB commands exactly as GNU Chess 4 implements them.
There are actually 2 ways to do randomize: one is to add a small random quantity to the score the search returns for each move in the root (and pre-adjust the search window for this). I think this is what Rybka does.
The second way is to add a pseudo-random quantity to each score returned by Eval(). In that case you do not have to worry about the search window, but you should take care that the same positon get the same quantity added when it is evaluated a second time. In this case the random addition acts as a poor-man's mobility eval, and, if properly tuned, can even make the engine stronger.