There are 4 ways tht I know of and only one of them I would actually recommend if you want a Firestone in a couple of minutes:
1: Find Bill's grandfather (I don't know where he is!!!!! T_T)
2: Do the Pokeathlon (this is the one I recommend!)
3: Bug catching contest (this takes FOREVER and you NEVER win!!! >_< do NOT do this 1 if you r not willing 2 waste time and possible hours you could b using 2 train your pokemon or live your life)
4: Get a call from "school kid Alan" after you battle him on route 30 (he never calls me!!!! ='[ was it something I said!?)
also with the Pokeathlon you meet a weird guy your 1st time there and he shows you around and tells you about it plus the fact when you get there its kinda like a Night Club! ^^ and once you reach the counter Goldenrod's Gym Leader.....whitney? Shows up and gives you a gayish red uniform, I don't know what it looks like 4 guys but its scary on my person....ew. But other then that you need 2 enter 3, 3!!!!, pokemon in2 the contest. The contests go as:
Strength;Skill;Stamina;Jump;Speed;Power. There are things that can make your pokemon good in any of these but I won't give away the secret ;) so like I said, if you don't want 2 waste your life with Alan, Bill's grandfather, or the contest, do the pokeathlon!!! =D