If God knows the future, that means He knows some people will end up eternally suffering in hell. Isn't this a contradiction since God is good? Why doesn't God change these people, or make it so they are never born (if God is all possible he could do that).
You assume the apparent truism, that God can do anything, which is a logical fallacy. If God can do anything, then he can do the impossible, therefore nothing is impossible. Yet this would leave us with an absurd world. God could cease to exist, and yet also exist. He could violate the law of non-contradiction, he could make a rock so big he couldn't lift its, ....
Instead, take a reasonable, not absurd view of God. Perhaps it was impossible for God to create people who could freely reject him, and yet not have at least some people reject him. It's like offering a free lunch, yet being impossible to guarantee that some people will choose to go hungry.
Secondly, the general view is that though God knew some would reject him and go to hell, there is no evidence to suggest that He could have created a better world in which fewer people would reject him. This is Charles Finney's approach in his "Systematic Theology" book, or see section V point 4 in http://www.gospeltruth.net/1836SOIS/10sois_election.htm
Yet Finney, like most, bases his ideas on a belief in the unchangeableness of God, see the same article.(immutability)
Others, noting that "God changed his mind" dozens of time in the Bible, assert that the future is in fact full of possible actions, instead of inalterable events. Therefore God only knows who possibly will go to hell, because the future is only a possibility. You can read more about this from Greg Boyd and "God of the Possible."