This is a tricky situation. So if you go to a sex shop, they will card you, see that you aren't 21, and ask you to leave. If you go to Spencers, this probably won't happen, being that you look around 18. If you are young looking, they may not sell them to you. In general, if you want sex toys, buy them online and have them delivered to your home. No one checks up on that, you don't need to have any awkward encounter with a cashier, and they come in discreet packaging. Amazon is a good tool for this, Adam&Eve, or Lovehoney will all work for this. These are often better because you can use promocodes and get discounts on them.
Depending on your age, you also need to consider if you should be buying sex toys. If you are under 16, probably not a good idea. If you cannot properly deal with the consequences of the toy being found or cannot afford the toy, you probably don't need to have it. If you don't have a card or can't buy the toy online, then you should buy it in store. if the option of buying online is a possibility, then go that route.