title: Reversible shuffle algorithm using a key
body: <p>How would I code a reversible shuffle algorithm in C# which uses a key to shuffle and can be reversed to the original state? </p>
  
  <p>For instance, I have a string: "Hello world", how can I shuffle it so that later I could be able to reverse the shuffled string back to "Hello world". </p>