Dipende tutto dalla grandezza della tabella dove sono salvati i numeri "preferiti" e soprattutto se col tempo può crescere in maniera esponenziale.
Se è una tabella piccola con pochi dati, va benissimo tirarsi giu' tutto in memoria e poi lavorare sulla lista. Immagino a backend ci sia un API che restituisca tutta la lista in formato JSON, quindi una GET ajax tramite XMLHttpRequest() per tirarsi giù i dati a front end.
In caso invece fosse una tabella grande, allora ti toccherà fare piu' chiamate al server in base agli input dell'utente e facendo dei contains sull'API backend.
Ovviamente nel caso 2 conviene sempre mettere dei timeout sulla chiamata per evitare spam all'API. Per esempio dopo che l'utente scrive qualcosa c'e' un delay di 1 secondi prima di fare la chiamata.