I've realized there's a flaw in my method which is that it's not anonymous. If someone inputs X bitcoins, and no one else outputs X bitcoins, then whoever receives X bitcoins is the same as the person who submitted X bitcoins. It's necessary that all people send the same number of bitcoins so that the mixing creates anonymity.