I'm currently working on a project and the last piece of functionality I have to write is to shuffle a linked list using the rand function. 

I'm very confused on how it works. 

Could someone clarify on how exactly I could implement this? 

I've looked at my past code examples and what I did to shuffle an array but the arrays and linked lists are pretty different. 

Edit:
For further clarifications my Professor is making us shuffle using a linked list because he is 'awesome' like that.