Well I suppose I could tell you that Martians have hacked into the system and have sold your number but that wouldn't be true. So, tell me, have you ever in your life dialed a wrong number or have received a call from a someone who misdialed? If as you say, someone needs to know what the number is before dialing, then that wouldn't be possible. Now, if you set up a computer program to dial every 4 digit number in your area code and exchange, do you think that one of those would be yours? Of course it would, which is what they do. Remember, you only need the number to know who you are calling, not to call it.
Unless they are asking for you by name, they didn't "get" your number, they're calling numbers at random. And if they do ask for you by name, well, your number IS out there, unlisted or not. You may have put it on an application of some sort, or registered for a contest or the like and your number is now out there for scammers to obtain. Paying the phone company for an unlisted number only keeps your number out of the phone book, it doesn't magically keep scammers from getting it if you wrote it down somewhere.