All it does is generate a random string of bytes, made up of the upper and lower case letters, plus a few special characters.
It probably isn't much use - it starts well by using a strong random sequence generator, then throws away much of that data to generate it's string.
You could have got this pretty easily from MSDN:
RNGCryptoServiceProvider.GetBytes Method[
^] - so why are you asking? What part of it confuses you?