Как придумать алгоритм — заменить слова в HTML на синонимы из массива при каждом вхождении?
думаешь Гугл наиипать?  он таких умных на патенте вертел
по сабжу:
первым проходом меняешь искомое на СЛУЖЕБНОЕ
вторым формируешь массив замен (чиста па-прастому, но можно и па взрослому, с корпусами)
третьим меняешь СЛУЖЕБНОЕ на элементы массива
разбейте все на массив слов - и пробегите по нему циклом или map собрав обратно, попутно заменяя слова как вам хочется