Если важна «истинно» случайность, я рекомендую против этого. См. Мое редактирование ниже.
Я просто хотел добавить свой любимый метод для небольшого разнообразия;)
С учетом строки:
var str = "My bologna has a first name, it's O S C A R.";
Перестановка в одну строку:
var shuffled = str.split('').sort(function(){return 0.5-Math.random()}).join('');
Выходы:
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
РЕДАКТИРОВАТЬ: Как отметил @PleaseStand, это не отвечает на вопрос OP, так как он страдает от кода "Microsoft Browser Choice shuffle". Это не очень хороший рандомизатор, если ваша строка должна быть близка к случайной. Тем не менее, это удивительно - быстро «перемешивать» ваши строки, где «истинная» случайность не имеет значения.
Статья, на которую он ссылается ниже, отлично читается, но объясняет совершенно другой вариант использования, который влияет на статистические данные. Лично я не могу представить практическую проблему с использованием этой «случайной» функции для строки, но как кодер, вы должны знать, когда не использовать это.
Я оставил это здесь для всех случайных рандомизаторов.