如何随机选择几个字符串之一?

Fak*_*dez -2 delphi random

我有这个代码:

letsdoit(something,'abcd');
letsdoit(something,'asdfasdf');
letsdoit(something,'gagaga');
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我希望它只是一个简单的逻辑行,如:

(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf')) OR (letsdoit(something,'gagaga'));
Run Code Online (Sandbox Code Playgroud)

因此它有33%的机会选择三者中的任何一个.要么:

(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf'))
Run Code Online (Sandbox Code Playgroud)

所以它有50%的机会选择左边或50%的机会来做正确的事情.

我的问题是:

  1. 如何在三者之间随机化,只做一件事.

  2. 如何在两件事之间随机化,只做一件事.

MBo*_*MBo 6

function RandomChooseString(const A: array of string): string; 
begin
   Result := A[Random(Length(A))]
end;

letsdoit(something, RandomChooseString(['aaa', 'bbb', 'ccc']));
Run Code Online (Sandbox Code Playgroud)