There are no 10-team 30 game grids that break up nicely into three weeks, so the only way out is to create a version twice as long:

Game
A1B1C1D1E1F1G1H1J1K1 A2B2C2D2E2F2G2H2J2K2 A3B3C3D3E3F3G3H3J3K3 A4B4C4D4E4F4G4H4J4K4 A5B5C5D5E5F5G5H5J5K5 A6B6C6D6E6F6G6H6J6K6
Team 1R G Y R Y G Y R G Y G R R G Y Y G R
2G Y R G R Y G Y R Y G R R G Y Y G R
3Y R G R Y G Y R G Y G R R G Y Y G R
4 R G Y G R Y G Y R Y G R R G Y Y G R
5 G Y R Y R G Y R G Y G R R G Y R Y G
6 Y R G G R Y G Y R Y G R Y R G R Y G
7 R G Y Y R G R Y G R Y G Y R G R Y G
8 G Y R G Y R G R Y R Y G G Y R G R Y
9 Y R G R Y G R Y G G R Y G Y R G R Y
10 R G Y G Y R G R Y G R Y G Y R G R Y

Note that teams 1 and 2 always finish early; and teams 3 and 4 usually finish early.

The following would be a good shuffle rule: 1 to 2, 2 to 4, 3 to 6, 4 to 8, 5 to 10, 6 to 3, 7 to 5, 8 to 7, 9 to 1, 10 to 10.

9 team league League Grids 11 team