Both the ls command and wildcards such as * list file names in lexicographic orders. For file names that consist solely of digits, this corresponds to numerical order only if all the file names have the same number of digits. Your file names appear to be milliseconds since the epoch; as long as the times are between 2001-09-09 01:46:40 and 2286-11-20 17:46:39.999, lexicographic order is fine for you.
In zsh, you can use the [-1] glob qualifier to take the last match.
cd *([-1])
This can be refined in several ways, such as
cd *(/[-1]) to ensure that only directories are matched (in case there are also other types of files).
cd *(-/[-1]) to also include symlinks to directories.
cd <->([-1]) to ensure that only names consisting of digits only¹ are matched.
cd <->(/n[-1]) to sort those names in numerical instead of lexicographic order (e.g. 10 sorted after 9 instead of just after 1).
Another approach in zsh is to make use of completion. This is more or less straightforward depending on the current completion settings. If you set the glob_complete option (which I do) and bind reverse-menu-complete to a key, let's say Shift+Tab, which can be done with the following code in your .zshrc:
setopt glob_complete
bindkey '\e\t' reverse-menu-complete
then you can type cd *Shift+Tab and the * will be replaced by the last match.
Other shells lack this nice functionality. You can make a little function.
cdlast () {
set ./*/
shift "$(($#-1))"
cd "$1"
}
With an optional leading -, but given that file names beginning with - are problematic, hopefully you don't use them.