There are 2 ways to get unlimited Rare Candies without cheating, but they both take forever:
A. This one can be used at anytime as long as you have access to the Pokemon Mansion on Route 212 North (just south of Hearthome). First, get a strong and fast Pokemon that knows either Sleep Powder or Hypnosis (I use a Butterfree due to it's Compound Eyes ability that raises its accuracy, then I taught it Energy Ball and Bug Buzz. PS mine is also shiny!) Then go to Pastoria City, then go to Route 212 from there. You'll find a house where you can trade shards to teach your Pokemon moves they cannot normally learn (make sure you have a ton of blue shards cause each move taught requires them along with a few of the other shards) Teach that Pokemon the move Trick if it can, otherwise get other FAST Pokemon that can learn it. Go to the Pokemon Mansion and do the 5-Maid Knockout Challenge. Here's my strategy: Depending on the amount of moves you have to take them out in, use moves that will either bypass their Clefairy's Endure (Sandstorm, Hail, Toxic, Leech Seed, Curse for Ghost types, Will-o-Wisp, etc.) or neutralize the Clefairy so it can't use Endure or the even more frustrating Sing (which is where moves like Sleep Powder and Hypnosis come into play) Use you use your "stall move" then use a powerful attack to take it out in one hit, or False Swipe for an additional stall. Use you beat all the maids, then one of 2 people will appear, a boy or a girl, and each of them have a Blissey that knows Fling and is holding a Rare Candy (the rich are so wasteful!) Then use Trick or use Sleep Powder or Hypnosis immediately to ensure Blissey will not attack, then you may switch out for your Pokemon that knows Trick and take their Rare Candy. And there you have a free Rare Candy, plus the cash you get from beating all those trainers! But unfortunately you may only do this once a day, so stockpile the Rare Candies you win. Also, save your game before doing this just in case you mess up.
B. Once you get to the Battle Frontier it's only a matter of beating any or all of the Battle Facilities until you get 48 Battle Points. Then you can buy a Rare Candy from the BP traders, but I'd suggest using those precious BP to buy more useful items and TMs
Using these 2 methods and a lot of time and patience, you virtually have unlimited Rare Candies without cheating
A. This one can be used at anytime as long as you have access to the Pokemon Mansion on Route 212 North (just south of Hearthome). First, get a strong and fast Pokemon that knows either Sleep Powder or Hypnosis (I use a Butterfree due to it's Compound Eyes ability that raises its accuracy, then I taught it Energy Ball and Bug Buzz. PS mine is also shiny!) Then go to Pastoria City, then go to Route 212 from there. You'll find a house where you can trade shards to teach your Pokemon moves they cannot normally learn (make sure you have a ton of blue shards cause each move taught requires them along with a few of the other shards) Teach that Pokemon the move Trick if it can, otherwise get other FAST Pokemon that can learn it. Go to the Pokemon Mansion and do the 5-Maid Knockout Challenge. Here's my strategy: Depending on the amount of moves you have to take them out in, use moves that will either bypass their Clefairy's Endure (Sandstorm, Hail, Toxic, Leech Seed, Curse for Ghost types, Will-o-Wisp, etc.) or neutralize the Clefairy so it can't use Endure or the even more frustrating Sing (which is where moves like Sleep Powder and Hypnosis come into play) Use you use your "stall move" then use a powerful attack to take it out in one hit, or False Swipe for an additional stall. Use you beat all the maids, then one of 2 people will appear, a boy or a girl, and each of them have a Blissey that knows Fling and is holding a Rare Candy (the rich are so wasteful!) Then use Trick or use Sleep Powder or Hypnosis immediately to ensure Blissey will not attack, then you may switch out for your Pokemon that knows Trick and take their Rare Candy. And there you have a free Rare Candy, plus the cash you get from beating all those trainers! But unfortunately you may only do this once a day, so stockpile the Rare Candies you win. Also, save your game before doing this just in case you mess up.
B. Once you get to the Battle Frontier it's only a matter of beating any or all of the Battle Facilities until you get 48 Battle Points. Then you can buy a Rare Candy from the BP traders, but I'd suggest using those precious BP to buy more useful items and TMs
Using these 2 methods and a lot of time and patience, you virtually have unlimited Rare Candies without cheating