Almost everyone expoits knowledge of the RNG whether they know it or not in some way or form.
For instance, imagine that you want to get yourself a Gyarados. Should you limit yourself to the first one you catch? Of course not! Various NPCs (I can't remember which ones off hand, but there are a number throughout the games) tell you that Pokemon of the same species and level may be different, and their stats and natures at least are not exactly hidden. There is even a guy build into the game (Platinum at least) with the specific function of giving you an indication of the Pokemon's IVs.
However, this is essentially exploiting your knowledge of the RNG. You rely on your knowledge of the RNG, or at least the fact that a RNG exists in your assumption that if you catch multiple Pokemon, they will be different. In a sense, this kind of RNG "abuse" can get you anything you please.
Testing things is part of our humanity and also part of the expectations of the game. We use a grass move on a water type, and it turns out to be super effective, whereas using a fire move is not very effective. No-one is going to complain that using type advantages is cheating here. This is similar to how we worked out the mathematics behind EVs and IVs: we can exploit this information to improve our chances of winning, and the fact that the formulas have been formalised doesn't take away from the fact that the information we use was gained from testing and analysis.
Using the RNG is very similar. Rather than randomly charging forth and trying to catch/SR what you want, we use the data which we have gathered (well, not me obviously, but it was still gathered by people playing the game) in a formalised and usable form to determine what will get us our desired results. While the RNG might not have been explicitly mentioned by the game, some element of randomness was clearly indicated, and rather than try to eliminate it individually, we can use a formula. RNG "abuse" is nothing but a logical extension of strategy.
I consider cheating to be the use of anything not indended to feature in the game. While trial and error and conservative strategy were built in (where RNG exploitation is merely the ultimate iteration), devices such as the Gameshark were not, and glitches obviously were not either. The use and exploitation of them is what I would consider cheating.
However, I believe there are cases where cheating may be acceptable and legitimate tools might be avoided. When the game is effectively complete and all parties involved in an interaction (e.g. a trade of battle) agree to the use of a cheat (most commonly cloning, fast hatch, IV check cheats), the use of said cheat is not an issue. These are time-saving, as opposed to game-breaking, cheats and as such do not qualify the user for having cheated in the completion of the game. Also, if a legitimate tool makes the game less fun, you may want to avoid it (I can't think of any Pokemon examples here, but using the blood sword on the Emperor in FFII comes to mind). In fact, there is a whole (masochistic) subculture with these sort of games which delights in making the game more challenging by ignoring prominant aspects of the game because they simply enjoy it. Nothing wrong with that, but in no way can others be expected to subject themselves to the way other people prefer to play their games.
In essence, I don't believe that using the RNG is cheating, and I believe that cheating may be acceptable where it does not influence the completion of the game and all effected parties agree with the use of the cheat.
Edit: This is a seperate arguement, but also has its place here.
What can be considered cheating in a competitive online environment? Directly modifying the game means that you are changing the odds, but if all partiess are in agreement, than why not? Another issue raised is giving some people unfair advantages over others. In this case, since there are people around who offer cloning and other hacking services, "legitimate hacks" are acceptable, since they are not denied to anyone. One could say that asking for compensation for these services is giving unfair advantage, but it must be considered that the compensation is often nominal and that it seens to be aimed more at repaying time spent than the service itself. Is there a reason then not to allow Pokemon modified as people please for battles? In this case, I believe there is: being able to battle with Pokemon of whatever stats you please changes the game into something else (and something completely stupid imo). Changing the nature of the game with hacks can therefore be considered illegitimate in terms of Pokemon battling, and should never be allowed to be the standard, but of course there is no problem with allowing people to play against each other with hacks if they both agree to it and it is not counted as an official Pokemon battle.
This does, however, raise an intersting arguement about event pokemon/moves. There are a siginicant portion of people who just don't have access to them, period. In this respect, it is my belief that events should be freely available for anyone who wants then in the intest of fairness, or be banned altogether. I doubt this will be a popular position, but it seems logical.
Regards,
Ascalon