For starters, you shouldn't be storing 50,000 items in a ListBox anyway: that kind of quantity is just annoying for the user as they can't look at than many items in a reasonable timescale anyway - so get rid of it, and think of a way to store your text in a List or similar instead, with a summary or extract displayed to the user. You can then start to use hashes to improve your search performance.
If your list of items doesn't contain duplicates, then consider using a
Hashset[
^] instead - it's search performance is pretty much the same regardless of the number of elements.