The ABC order already existed in some form about 1400 BC, in the Ugaritic script, from which our alphabet is descended. From Wikipedia:
It is unknown whether the earliest
alphabets had a defined sequence. Some
alphabets today, such as the Hanuno'o
script, are learned one letter at a
time, in no particular order, and are
not used for collation where a
definite order is required. However, a
dozen Ugaritic tablets from the
fourteenth century BCE preserve the
alphabet in two sequences. One, the
ABCDE order later used in Phoenician,
has continued with minor changes in
Hebrew, Greek, Armenian, Gothic,
Cyrillic, and Latin; the other, HMĦLQ,
was used in southern Arabia and is
preserved today in Ethiopic. Both
orders have therefore been stable for
at least 3000 years.
The English alphabet comes from the Latin alphabet (it is even often still called the Latin alphabet), which in turn comes from the Greek alphabet. All modern alphabets are most probably in some way descended from the Proto-Sinaitic alphabet, which probably originated around 2100-1800 BC, but whose ordering is unknown. The Greek alphabet developed from Proto-Sinaitic through Phoenician. Many times in between Proto-Sinaitic and English, letters have been added and removed. W, U, and J are among the most recent additions, which did not exist in classical Latin.
The first letters or proto-letters were taken by the Proto-Sinaitic alphabet from non-alphabetic Egyptian hieroglyphs, which were mostly ideograms, small depictions of objects. Note that these hieroglyphs were used in an entirely different way—the Egyptians didn't use them as alphabetical letters—, so that the order in Egyptian doesn't tell us much about the order in alphabets. Perhaps there was a logical sequence in those earliest forms, but that is unknown; it might very well be an arbitrary order.
For all practical purposes, the modern order is best considered random, though fixed.