Да, именно с типами и связано. Пример:
https://jsfiddle.net/mr8acvee/
По умолчанию .sort() обрабатывает значения как строки.
https://developer.mozilla.org/ru/docs/Web/JavaScri...
UPD: Только сейчас заметил, что у вас там своя реализация quicksort. Все равно, value из input[type=text] - это строка.
Кроме того, вы там перемудрили с валидацией ввода. Русскую запятую оно не принимает, например.
Я переписал бы ее как-то так:
$("#rslt").keydown(function(event) {
return /^[0-9,]+$/.test(rslt.value+event.key)
});