So suppose a million custom erc20 tokens are created/pre-mined and sent to an address on the ethereum network. The coins have a starting worth of 0 eth. The coins are then somehow distributed to a bunch of people who have some sort of arbitrary use for the tokens. What makes the tokens gain some eth value? What makes this value go up and down? Is there an algorythm in place that rates the token value based on how decentralized the token is, transfer frequency, etc? What other factors can cause the stated value of the coin on the block chain to go up and down?
Whatever people are willing to pay for something is what gives everything its value. The only reason Ether has any value is because people attribute value to it. The value you see listed for a token is the price that it has recently been sold/bought at from person to person. This price fluctuates as people decide it's worth more or less to them.
The value is defined by the market; the middle ground between what a seller is asking for and what a buyer is bidding at.
These prices between buyers and sellers fluctuate due to things such as recent news, speculation, FOMO, and FUD.