Кароче вот ... Добавляем порядок с алфавитными индексами на сервере и тасуем. На клиенте делаем sort(), что восстанавливает порядок массива.
let test = {"key":"1*G-0:50:25|B-0:25:0|C-0:50:0|D-0:75:0|E-0:0:25|F-1:25:25|H-0:75:25|I-0:0:50|J-1:25:50|K-1:50:50|L-0:75:50|M-0:0:75|N-0:25:75|O-0:50:75|P-0:75:75|A-0:0:0"};
let pattern = test.key.split('*')[0];
let coords = test.key.split('*')[1].split('|');
console.log(coords.sort()) // return order
function compareRandom(a, b) {
return Math.random() - 0.5;
}
console.log(coords.sort(compareRandom)) // randomize
С учетом того, что капчедрочеры обычно считывают изображение мы имеем шанс не попасть под автоматизированный алгоритм вычисления капчи - ведь она отрисовывается canvas. Далее после ввода паттерна опять мы перетасовываем и отправляем на сервер который делает тоже самое.
Мне кажется лет на 10 этого алгоритма хватит.