You can do it with an advanced Regex - it is the random bit that means you need anything complex:
Random r = new Random();
private void butRegex_Click(object sender, EventArgs e)
{
string stringWithTextIn = "hello i want to {help|meet|call} you {please|come|soon}.";
Regex regex = new Regex(@"({[^}]*})");
string r = regex.Replace(stringWithTextIn, new MatchEvaluator(ReplaceMatch));
MessageBox.Show(r);
}
string ReplaceMatch(Match m)
{
string s = m.Value;
s = s.Substring(1, s.Length - 2);
string[] parts = s.Split('|');
return parts[r.Next(0,parts.Length)];
}
[edit]Changed Regex and test string as shown - new version specifically until closing '}' character[/edit]