Then the bones must stay buried for a long time, many thousands of years at least, while minerals carried underground by water seep into the bones and harden them so that they will last for the many millions of years it will take for someone to find them. Even then, their survival is not guaranteed, because, as you note, they can be destroyed by all sorts of forces even when they are buried. Take trilobites, for instance. They look kind of like giant, weird caterpillars and they lived on the sea floor around 400 million years ago or more. So to find them you need to look in rocks that were once part of the sea floor.
Morocco has lots of trilobites, and there are also places in the United States known for trilobites.
North America is one of the best places to find dinosaurs. Paleontologists look in places like Dinosaur National Monument in Utah, which was probably once a riverbed where dinosaur bones were often buried by floods. You also have to look in rocks that are the same age of the creatures you're looking for. If you looked for dinosaurs in rocks that are 25 million years old, you wouldn't find any because dinosaurs were already extinct by then. But you might find fossils of other animals that lived later on, like the warthog from South Dakota that you can see in our fossil gallery.