The order works so that each type is weak to the type that follows it, with a clear and justified exception to the three types at the end, which were added after the conception of the other types. But even despite these exceptions, there is not a perfect flow, which is demonstrated below:
Normal sits by itself.
Fire comes after, which is weak to Water, which is weak to Electric.
Then comes Grass, which is weak to Ice, which is weak to Fighting.
Then comes Poison, which is weak to Ground, which isn't really weak to but I guess it cohesively precedes Flying.
Then comes Psychic, which is weak Bug, which is weak to Rock.
Finally, the types Ghost and Dragon which are weak to themselves.
Dark and Steel were added in Gen II and Fairy was added in Gen VI.
It isn't a perfect order so if anyone has a better justification then I'll happily hide this answer, but I like to believe this is as good as it gets.
Hope I helped. :)
For reference: the type order being discussed