Si la aleatoriedad "verdaderamente" es importante, recomiendo esto. Ver mi edición a continuación.
Yo sólo quería añadir mi método favorito para un poco de variedad;)
Dada una cadena:
var str = "My bologna has a first name, it's O S C A R.";
aleatoria en una línea:
var shuffled = str.split('').sort(function(){return 0.5-Math.random()}).join('');
Salidas:
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
EDITAR: Como @PleaseStand ha señalado, esto no cumple con la pregunta de OP en absoluto, ya que adolece del código "Microsoft Browser Choice Shuffle". Este no es un aleatorizador muy bueno si su cadena necesita ser casi aleatoria. Sin embargo, es asombroso al "mezclar" rápidamente tus cadenas, donde la aleatoriedad "verdadera" es irrelevante.
El artículo que vincula a continuación es una gran lectura, pero explica un caso de uso completamente diferente, que afecta a los datos estadísticos. Personalmente no puedo imaginar un problema práctico con el uso de esta función "aleatoria" en una cadena, pero como codificador, usted es responsable de saber cuándo no para usar esto.
Lo dejé aquí para todos los aleatorizadores casuales.
Gracias, esto es definitivamente más uniforme que algunos otros ejemplos que encontré. – Liam