You can get a Sun Stone from the following places in Pokemon:
Wild Solrock, Valor Lakefront & Mt Coronet with Drowsing App.
you need to go underground
bug catching contest on thurs sat and Tuesday
In Pokémon HeartGold, you can get a Sun Stone by winning 1st place in the Bug-Catching Contest and a trainer in Route 13 will occasionally give you Sun Stones if you have the trainer registered in your Pokégear.
Bug-catching contest first prize, Volcano Path and Pokeathlon Dome
Chat with our AI personalities
There is no such thing as an Ice Stone
I believe you can get a Shiny Stone in HeartGold in the Pokèathlon Prize Corner after you get 5000 Points.
By Action Replay
You can get them at the pokeatholon dome.
Winning in first place the Bug Catching Contest. you can also find one at the pokelethon item exchange.