Its a bit tricky, but you can try this way:
dirty description:
you have to create a snippet ’getrandom’ which gets all documents in a random order (of course you can use $modx->runSnippet(’Ditto’,$params);for that), save this order commaseperated into a session-var.
before you get a new random order you have to check, whether your session-var is setted, if so, do not get the documents again.
return your commasepareted list for the ditto-parameter &documents.
then you need a plugin, which saves last visited document also in a session-var.
Then you can check the document where you come from. If you came from different document, unset your document-list-session-var.
Now you can call Ditto like that:
[!Ditto? &documents=`[[getrandom]]` &showPublishedOnly=`1` &display=`12` &paginate=`1` &paginateAlwaysShowLinks=`1` &tpl=`designerListing` &extenders=`documentsort` !]
documentsort is a special extender I have coded, for not to reorder the list which comes from &documents.