If "truly" randomness is important, I recommend against this. See my below edit.
I just wanted to add my favorite method for a little variety ;)
Given a string:
var str = "My bologna has a first name, it's O S C A R.";
Shuffle in one line:
var shuffled = str.split('').sort(function(){return 0.5-Math.random()}).join('');
Outputs:
oa, a si'rSRn f gbomi. aylt AtCnhO ass eM
as'oh ngS li Ays.rC nRamsb Oo ait a ,eMtf
y alCOSf e gAointsorasmn bR Ms .' ta ih,a
EDIT: As @PleaseStand has pointed out, this doesn't meet OP's question at all since it does suffer from "Microsoft's Browser Choice shuffle" code. This isn't a very good randomizer if your string needs to be close to random. It is however, awesome at quickly "jumbling" your strings, where "true" randomness is irrelevant.
The article he links below is a great read, but explains a completely different use case, which affects statistical data. I personally can't imagine a practical issue with using this "random" function on a string but as a coder, you're responsible for knowing when not to use this.
I've left this here for all the casual randomizers out there.