<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<textarea id="area"></textarea><br>
<button id="btn">сортировать</button>
<script>
var dic = ['a','b','c','d','e','f','g','h','i','j','k','l'];
var ots = (s, el)=> !dic.includes(el) ? ++s : s;
var sum = (s, el)=>{
var ind = dic.indexOf(el);
return ind != -1 ? s + ind : s;
};
btn.onclick = e => {
var arr = area.value
.split(/\n/)
.sort((a,b)=>(a.split('').reduce(ots,0) - b.split('').reduce(ots,0) ) || (b.split('').reduce(sum,0) - a.split('').reduce(sum,0)));
area.value = arr.join('\n');
};
</script>
</body>
</html>
над производительностью не заморачивался.