Pretty much, there are two ways to explain what is done:
1) "It encrypts data"
Or
2) Explain the code line by line, because it's quite involved for a beginner.
Do you have any idea how much work explaining code line by line is?
Every single line needs a paragraph of explanation! For example:
int next = r.Next();
Create a new variable called "next" which can hold a integer value. From the previously declared Random instance "r", call the "Next" method to get a new random number, and assign it to the "next" variable.
Can you imagine how long it would take us to explain even a very short code fragment like your example, line by line?
If you have a specific problem, then ask a question about it. But think first - would you want to sit down for 45 minutes and type up a line-by-line description for no good reason?
So, you either need to find a book on encryption, or start by using Google and MSDN to follow what each of the classes and methods used does, how it does it, and how it is used.
But nobody (except possibly the author of the code) is going to explain that to you in the depth you want.