The rewards that you get each epoch is based on the number of blocks that our pool creates during that epoch, compared to the number of blocks we would be expected to create based on our stake. Since the slot assignment is random, it will vary epoch to epoch.
At the time of writing this, our luck in the slot lottery has actually been very good, having an average annualized return of over 7% (compared to the network average of about 5.5%). Even though our average luck has been great if you look at our individual epoch performance, we range from a low of 3.8% to a high of 10.8%.
As you can see this is a huge fluctuation, and would account for the large difference in rewards you are seeing from epoch to epoch. Over time however these fluctuations will average out.
If you want to see this in more detail, check out our pool on adapools.org: https://adapools.org/pool/4deb0ba979fe7af5a5a4896ef68cdae029ad116542555cb422f46348. This page will give you a bunch of stats, and will also show a graph visualizing the returns epoch over epoch.
The pledge amount does have an affect on the amount of rewards a pool will receive, but at current levels the difference between minimum and maximum return is not extremely large, and it requires a very large pledge to make a difference. If you are interested, there is a technical article by a member of the community here: https://www.reddit.com/r/cardano/comments/hnm3l6/shelley_incentive_parameters_what_you_need_to/