[...'ABCD'].map((k, i) => ({[k]: Math.floor(100 * Math.random())})).
sort((a, b) => values(b)[0] - values(a)[0]).
map(y => keys(y)[0] + '(' + values(y)[0] + ')').
join(',')
Здесь нет частотного анализа. Совсем нет. Есть лишь генерация массива случайных чисел, сортировка этого массива по убыванию и формирование строки результата.