The error occurs because you're using VB-style round brackets to return a character from the string. C# uses square brackets:
captcha.Append(combination[random.Next(combination.Length)]);
There's also no point in a
try..catch
block which simply re-throws the exception.
But, as Griff said, don't roll your own CAPTCHA solution. The existing solutions will be much more secure, and much better tested. With the latest version of reCAPTCHA, the user doesn't even need to try to read some distorted text - they just have to tick a box, which is much less annoying.