How to change Internet Sharing subnet on Mac OS

1. Copy the plist file /Library » Preferences » SystemConfiguration » com.apple.nat.plist to your home directory, eg: sudo cp /Library/Preferences/SystemConfiguration/com.apple.nat.plist ~

2. Use Xcode’s Property List Editor (or any other property list editor) to edit the file in your home directory (you may need to change permissions on it to be able to modify/save it)
To modify it’s permissions execute: sudo chown YourUsername:staff ~/com.apple.nat.plist

3. Add a new key (child) to the NAT dict. Call it SharingNetworkNumberStart. The type should be String, and the value is the IP network you want to use (eg 10.168.2.0).

4. Save your changes.

5. Copy the edited file back to the original location. sudo cp ~/com.apple.nat.plist /Library/Preferences/SystemConfiguration/

6. Restart Internet Sharing (disable/enable it)

On Yosemite, you need to add also:
SharingNetworkMask
255.255.255.0
SharingNetworkNumberEnd
10.168.2.20
SharingNetworkNumberStart
10.168.2.0

Because of cacheing, you should use defaults write:

sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat NAT -dict-add SharingNetworkNumberStart 10.168.2.0
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat NAT -dict-add SharingNetworkNumberEnd 10.168.2.20
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat NAT -dict-add SharingNetworkMask 255.255.255.0

Reference: http://hints.macworld.com/article.php?story=20090510120814850