Basic combinatorics in C# is a straight forward task for relatively small numbers like (100!). This is a helper class I wrote when I was asked to write an online lottery system.
Keep in mind though, that for bigger numbers (above 100!) you will need Arbitrary-precision arithmetic.
Here is the code and please, if someone knows a faster way or has some suggestions let me now!