Копаться (честно скажу) не хочется, но как выглядят строчки кода, в которых точно указан уровень существ?
Если (скажем так), ответ на мой вопрос выдаёт "true", то можно предложить следующее: если есть фиксированная строчка с указанием уровня, то можно запилить на Ruby (ИМХО, удобен для этого; если кто не слышал о нём, то похож на Питон) программку, которая будет смотреть на строчку, (грубо говоря) определять уровень и подменять на строку, в которой будет указан тот же уровень, но рандомное существо.
Самая тупая реализация (поскольку будет занимать времени ~(n^2+n)) видится мне следующей: предположим что у нас есть строка в файле - "уровень 1 - ассасин". Считываем полностью весь файл в массив (если язык позволяет, то лучше в string) text. Делая пробежки по файлу, делаем построчное сравнение с массивом arr. В самом массиве arr у нас есть семь эталонных строчек ["уровен 1 - (регулярное выражение)".."уровень 7 - (регулярное выражение)"]. И if( a[0]==text[определённый интервал, в котором содержится строка из файла] ) then ( text[определённый интервал, в котором содержится строка из файла]="уровень 1 - (рандомное существо)" ) и т.д.