Вы описываете "хэш-функцию".Посмотрите в Википедии.
MD5 - это один из видов хеш-функций.Большинство реализаций MD5 возвращают строку, но эта строка является просто представлением (LARGE) целого числа.Вы можете взять хеш MD5, а затем использовать столько младших битов, сколько вам нужно, чтобы получить целое число нужного размера.Если требуемый диапазон не является степенью 2, вам потребуется выполнить операцию по модулю, чтобы получить его в нужном диапазоне.
Кроме того, практически каждый современный язык программирования имеет встроенную функцию для хеширования строк,который возвращает целое число.В Java это String.hashCode ().В Ruby это String # hash.
В данном случае это язык Javascript, который (я был потрясен, узнав) не имеет чего-то подобного. Это String.hashCode ()с платформы Java (возможно, вы можете перенести его на Javascript):
public int hashCode() {
int h = hash;
if (h == 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
return h;
}