I want to give the user the option to select a numeric value which falls in a range (0-1000), where most multiples of 5 are acceptable.
Usually, for this kind of thing, a slider would be perfect - just implement it in a way where the min is 0 and the max is 1000, and it has a step/snapping behavior of say five: 0,5,10,15,20,25,30,35,40,45,50, etc.
However, I have an issue this time, in which the allowable values do not have a consistent step. The step is typically five, but at 15, 40 and 55 the step is ten: 0,5,10,15,25,30,35,40,50,55,65, etc.
Due to a technical reason, I can't use the slider component I have for this, because it requires the step to be consistent.
Is there some other user-friendly way I could allow the user to easily select a value? There are too many allowable values for it to be practical in a dropdown, and a simple input field doesn't really work well when there are a set list of allowed values.
EDIT: As a lot of people are curious as to the context, this is for an ISP ordering portal. Users need to be able to change the bandwidth/speed of their device in Mbps; however, as per the product design, certain particular speeds are not currently being offered by the business (we explain this to the user on the UI).